<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 {....} }))">
有什么建议吗?
答案 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 }
);
查看该方法的签名以找到您想要做的事情。