2010-04-07 156 views
15

我正在使用Ajax.ActionLink在控制器中调用一个Action,没有什么特别的。我想将两个参数传递给Action。这可能使用Ajax.ActionLink?我认为这只是在AjaxOptions中包含多个值的问题:在MVC中传递多个参数Ajax.ActionLink

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

是否可以传递多个参数?

哪里是了解更多关于AjaxOptions的好地方?

回答

44

根据其超载您选择Ajax.ActionLink,称为routeData可以包含一个匿名的字典将被传递到操作的各种参数的参数:

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

这不会有什么请使用AjaxOptions参数,它可以让您对请求/响应的行为进行一些控制。

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

这也有帮助,谢谢。 – mwright 2010-04-07 21:34:12

+0

如何生成像AwesomeController/DoSomething/foo1/bar1'而不是'AwesomeController/DoSomething?foo = foo1&bar = bar1'的路径 – bjan 2012-05-29 04:37:34

+0

如何生成这样的路径AwesomeController/DoSomething/foo1/bar1 – user145610 2012-11-05 20:37:45