2010-04-07 147 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