带参数的MVC Button元素

时间:2015-10-06 17:39:26

标签: c# asp.net-mvc

如何使用按钮元素将参数传递给控制器​​操作方法?

这不是表单提交,我只想要一个可以带你到另一个页面的按钮,但是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 = "";'>

我到底做错了什么?

5 个答案:

答案 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