在ASP.Net MVC3的Razor视图中将值传递给HREF

时间:2011-03-30 08:53:56

标签: asp.net-mvc asp.net-mvc-3 razor

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

上面一行为Razor视图生成一个超链接。 html帮助器方法MyActionHref()创建链接。单击链接时,它会从控制器调用操作方法。现在假设该链接调用的动作控制器方法是参数化的,即 public ActionResult MyAction(string myParams){}
(html辅助方法MyActionHref()甚至被重载以相应地接受三个参数。)

如何将此附加参数从模型传递给控制器​​操作方法?
说,

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

有什么建议吗?

2 个答案:

答案 0 :(得分:20)

为什么你可以简单地使用这样的助手:

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

将生成正确的锚标记:

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

答案 1 :(得分:7)

您可以使用Url.Action方法,也可以复制其行为。

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

查看该方法的签名以找到您想要做的事情。