将值传递给ASP.Net中的Razor视图中的HREF值
问题描述:
<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
)
这将产生合适的锚标记:
答
为什么你时,你可以简单地使用这样的帮手
<a href="/MyController/MyAction?myParams=Hello">some text</a>
答
您既可以使用Url.Action
方法,或复制其行为。
@Url.Action(
controllerName: "MyController",
actionName: "MyAction",
routeValues: new { id = 1 }
);
查看该方法的签名以找到您想要执行的操作。
如果myParams需要model.myValue会怎么样? – SocialCircus 2011-03-30 12:58:47
你不应该只能做... new {myParams = Model.myValue}? – jcreamer898 2011-03-30 13:01:05
@ jcreamer898,当然你可以做到这一点。 – 2011-03-30 13:04:57