2011-03-30 73 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 } 
); 

查看该方法的签名以找到您想要执行的操作。