2010-04-07 30 views
15

Estoy usando un Ajax.ActionLink para llamar una Acción en un Controlador, nada especial allí. Quiero pasar dos parámetros a la Acción. ¿Es esto posible usando un Ajax.ActionLink? Pensé que no sería más que una cuestión de incluir varios valores en los AjaxOptions:Pasar múltiples parámetros en un MVC Ajax.ActionLink

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

¿Es posible pasar varios parámetros?

¿Dónde hay un buen lugar para aprender más sobre AjaxOptions?

Respuesta

44

Dependiendo de la sobrecarga que elija para Ajax.ActionLink, el parámetro llamado routeData puede contener un diccionario en el anonimato para los diversos parámetros que se pasarán a la acción:

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

Esto no tiene nada que hacer con el parámetro AjaxOptions, que le da cierto control sobre el comportamiento de la solicitud/respuesta.

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

Esto también fue útil, gracias. – mwright

+0

Cómo generar una ruta como 'AwesomeController/DoSomething/foo1/bar1' en lugar de' AwesomeController/DoSomething? Foo = foo1 & bar = bar1' – bjan

+0

Cómo generar una ruta como esta AwesomeController/DoSomething/foo1/bar1 – user145610

Cuestiones relacionadas