2011-03-30 124 views
4
<a href="@(Html.MyActionHref(controllerName: "MyController", actionName: "MyAction"))"> 

上述行爲Razor視圖生成超鏈接。 html助手方法MyActionHref()創建鏈接。在點擊鏈接時,它會從控制器調用一個操作方法。現在,假設此鏈接調用動作控制器方法參數即
public ActionResult MyAction(string myParams){}
(html的輔助方法MyActionHref()甚至超負荷相應地接受三個參數。)將值傳遞給ASP.Net中的Razor視圖中的HREF值

此附加參數可以被傳遞到控制器從模型的行動方法?
說,

<a href="@(Html.MyActionHref(controllerName: "MyController", actionName: "MyAction",params: new {....} }))"> 

有什麼建議?

@Html.ActionLink(
    "some text", 
    "MyAction", 
    "MyController", 
    new { myParams = "Hello" }, 
    null 
) 

這將產生合適的錨標記:

回答

20

爲什麼你時,你可以簡單地使用這樣的幫手

<a href="/MyController/MyAction?myParams=Hello">some text</a> 
+0

如果myParams需要model.myValue會怎麼樣? – SocialCircus 2011-03-30 12:58:47

+0

你不應該只能做... new {myParams = Model.myValue}? – jcreamer898 2011-03-30 13:01:05

+0

@ jcreamer898,當然你可以做到這一點。 – 2011-03-30 13:04:57

7

您既可以使用Url.Action方法,或複製其行爲。

@Url.Action(
    controllerName: "MyController", 
    actionName: "MyAction", 
    routeValues: new { id = 1 } 
); 

查看該方法的簽名以找到您想要執行的操作。

相關問題