如何使用按钮元素将参数传递给控制器操作方法?
这不是表单提交,我只想要一个可以带你到另一个页面的按钮,但是action方法需要参数。
我目前有:
<button type="button" class="btn btn-info" onclick='window.location = "@Url.Action("Index", "ReviewPendingApprovals", new object[] { Model.QuoteGuid })";'>
但是,这导致空HTML:
<button type="button" class="btn btn-info" onclick='window.location = "";'>
我到底做错了什么?
答案 0 :(得分:4)
最好为此使用HTML帮助程序。
@Html.ActionLink(
"ButtonText",
"Index", // controller action
"ReviewPendingApprovals", // controller
new { Model.QuoteGuid }, // action parameters aka route values
new { @class = "btn btn-info" }) // html attributes
答案 1 :(得分:1)
使用Jquery而不是onclick事件:
$( '按钮')。单击(函数(){ winodw.location.href ='@ Url.Action(“Action”,“Controller”,new {parameter name = value})'; });
答案 2 :(得分:0)
我从未试图直接通过按钮进行操作,但是当我使用控制器执行此操作时,它看起来像是:
return RedirectToAction("ActionName", new { param1 = param1_value, param2 = param2_value });
所以我建议你试试这个:
<button type="button" class="btn btn-info" onclick='window.location = "@Url.Action("Index", "ReviewPendingApprovals", new object[] { object_name = Model.QuoteGuid })";'>
答案 3 :(得分:0)
尝试将URL Scheme参数添加到Url.Action:
<button type="button" class="btn btn-info" onclick='window.location = "@Url.Action("Index", "ReviewPendingApprovals", new object[] { Model.QuoteGuid }, this.Request.Url.Scheme)";'>
答案 4 :(得分:0)
此处的正确答案:
您做错了两件事:您没有将456
委托标记为onClick
,也没有将参数/路由值映射到任何参数(但这并未导致呈现HTML标记为空白)
我更喜欢使用输入标签,但是您可以使用按钮标签
这是使用HTML的解决方案的外观:
href