2010-12-13 22 views
2

Je suis en utilisant le code suivant pour initialiser mes ongletsdonnées enregistrées avec des onglets jQuery ajaxoptions

$('#tabs').tabs({ 
     fx: { 
      opacity: 'toggle', 
      duration: 'fast' 
     }, 
     select: function() { 
      $(this).tabs("option", { 
       ajaxOptions: { data: vehicleJson } 
      }); 
     }, 
     ajaxOptions: { 
      type: 'post', 
      success: function(){ 
       alert('onSuccess'); 
      }, 
      error: function(){ 
       alert('onFail'); 
      } 
     }, 
     spinner: '' 
    } 

Dans mon contrôleur j'ai:

[HttpPost] 
public PartialViewResult Intervals(string vehicleJson) 
{ 
    return PartialView("_Intervals"); 
} 

Si je supprime le attrib [HttpPost], il semble fonctionner, sauf que ce n'est pas un «poste» dont j'ai besoin. Fondamentalement, j'essaie de passer un objet JSON à un poste. Qu'est-ce que je fais mal? Voici le code HTML initial pour mes onglets

<ul id="ul-tabs"> 
    <li><a href="/maintenance/Tabs/Intervals" title="Intervals">Intervals</a></li> 
    <li><a href="/maintenance/Tabs/Lifetime" title="Lifetime Services">Lifetime Services</a></li> 
    <li><a href="/maintenance/Tabs/Locator" title="Locator">Locator</a></li> 
    <li><a href="/maintenance/Tabs/Procedures" title="Procedures">Procedures</a></li> 
    <li><a href="/maintenance/Tabs/Specifications" title="Specifications">Specifications</a></li> 
    <li><a href="/maintenance/Tabs/Reset" title="Reset">Reset</a></li> 
</ul> 

Comment forcer correctement les liens pour faire un poste plutôt que d'un obtenir? Je veux utiliser les données javascript du côté serveur.

Merci pour un conseil ou des conseils,
Cheers,
~ ck à San Diego

+0

Sûrement votre méthode d'action onglets devrait être « get », car il sert le balisage, pas un poste. Un message devrait toujours rediriger ne pas répondre avec html. Le fait que vous filtrez le contact en utilisant la chaîne vehicleJson? ne fait pas un post. – redsquare

+0

Vous avez probablement aussi des problèmes avec le type de chaîne. Est-ce que le vehicleJson est une chaîne ou un objet JSON. Si ce dernier vous aurez besoin de le renforcer – redsquare

Répondre

5

Vous écrasez l'ajaxOptions sur l'onglet sélectionnez.

Cette ligne:

$(this).tabs("option", { ajaxOptions: {data: vehicleJson}}); 

écrasera vos options définies précédemment et provoquer des onglets à utiliser par défaut ajax jQuery (type = "GET").

Vous pouvez le réparer comme ceci:

var tabAjaxOpts = { 
    type:'post', 
    success:function(){alert('onSuccess');}, 
    error:function(){alert('onFail');} 
}; 

$('#tabs').tabs({ 
    fx: { 
     opacity: 'toggle', 
     duration: 'fast' 
    }, 
    select: function() { 
     tabAjaxOpts.data = vehicleJson; 
     $(this).tabs("option", { ajaxOptions: tabAjaxOpts}); 
    }, 
    ajaxOptions: tabAjaxOpts 
}; 
+0

Cela a bien fonctionné. Merci pour l'aide! – Hcabnettek