2010-04-07 11 views
15

J'utilise un Ajax.ActionLink pour appeler une action dans un contrôleur, rien de spécial là-bas. Je veux passer deux paramètres à l'action. Est-ce possible en utilisant un Ajax.ActionLink? Je pensais que ce serait juste une question d'inclure plusieurs valeurs dans les AjaxOptions:Passer plusieurs paramètres dans un MVC Ajax.ActionLink

<%= Ajax.ActionLink("Link Text", 
    "ActionName", 
    "ControllerName", 
    new { firstParameter = firstValueToPass, secondParameter = secondValueToPass }, 
    new AjaxOptions{ UpdateTargetId = "updateTargetId"})%> 

Est-il possible de passer plusieurs paramètres?

Où est un bon endroit pour en savoir plus sur les AjaxOptions?

Répondre

44

Selon que vous choisissez pour surchargez Ajax.ActionLink, le paramètre appelé routeData peut contenir un dictionnaire anonyme pour les différents paramètres qui seront passés à l'action:

<%= Ajax.ActionLink("Link Text", 
    "DoSomething", 
    "AwesomeController", 
    new { foo = "foo1", bar = "bar1" }, 
    new AjaxOptions{ UpdateTargetId = "updateTargetId"})%> 

Cela n'a rien à faites avec le paramètre AjaxOptions, ce qui vous donne un certain contrôle sur le comportement de la requête/réponse.

public class AwesomeController 
{ 
    public ActionResult DoSomething(string foo, string bar) 
    { 
     /* return your content */ 
    } 
} 
+0

Cela a également été utile, merci. – mwright

+0

Comment générer un chemin comme 'AwesomeController/DoSomething/foo1/bar1' au lieu de' AwesomeController/DoSomething? Foo = foo1 & bar = bar1' – bjan

+0

Comment générer un chemin comme ceci AwesomeController/DoSomething/foo1/bar1 – user145610

Questions connexes