问题描述
我知道这是不对的,但为了说明起见,我想做这样的事情:
<%= Html.Button("Action", "Controller") %>
我的目标是制作一个 HTML 按钮,它将调用我的 MVC 控制器的动作方法。
最佳解决方案
除非您想要发布到该操作,否则不需要使用表单。输入按钮 (不提交) 将会做到这一点。
<input type="button" value="Go Somewhere Else" onclick="location.href='<%: Url.Action("Action", "Controller") %>'" />
次佳解决方案
剃刀语法在这里:
<input type="button" value="Create" onclick="location.href='@Url.Action("Create", "User")'" />
第三种解决方案
<button type="button" onclick="location.href='@Url.Action("MyAction", "MyController")'" >
type = “button” 阻止页面提交。而是执行你的行动。
第四种方案
您可以使用 Url.Action 指定生成控制器操作的 URL,因此您可以使用以下任一操作:
<form method="post" action="<%: Url.Action("About", "Home") %>">
<input type="submit" value="Click me to go to /Home/About" />
</form>
要么:
<form action="#">
<input type="submit" onclick="parent.location='<%: Url.Action("About", "Home") %>';return false;" value="Click me to go to /Home/About" />
<input type="submit" onclick="parent.location='<%: Url.Action("Register", "Account") %>';return false;" value="Click me to go to /Account/Register" />
</form>
第五种方案
尝试这个:
@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute)
这应该适合你。
第六种方案
基于以上几个答案,您可以这样做:
<button onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
第七种方案
HTML <button>
元素只能回发到包含它的表单。
因此,您需要制作一个 POST 操作的表单,然后在表单中放置一个<button>
或<input type="submit" />
。
第八种方案
如果您收到错误为 “未终止的字符串常量”,请使用以下剃刀语法:
<input type="button" onclick="@("location.href='"+ Url.Action("Index","Test")+ "'")" />
第九种方案
这是您如何将您的表单提交给 Razor 中的特定控制器和操作方法。
<input type="submit" value="Upload" onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。