我有一个带有两个按钮的MVC表单,页面基本上加载了一条记录,用户有一个批准或拒绝按钮
<button id="btnAcceptAll" class="btn btn-lg btn-success">Accept</button>
<button id="btnRejectAll" class="btn btn-lg btn-danger">Reject</button>
我想将它保存为单个表单,因为我也使用了很多隐藏的值。
基本上在Form Post中,我想能够区分按下哪个按钮。
目前我的表格发布..
[ActionName("Index")]
[HttpPost]
public ActionResult IndexPost(QcMatchViewModel model)
{
//Save Record and Redirect
return RedirectToAction("Index");
}
答案 0 :(得分:4)
您可以为具有相同值的两个按钮添加名称attribute
,然后添加value
属性。
<button id="btnAcceptAll" name="button" value="accept" class="btn btn-lg btn-success">Accept</button>
<button id="btnRejectAll" name="button" value="reject" class="btn btn-lg btn-danger">Reject</button>
在您的操作方法中,您需要添加额外的button
参数,该参数将填充按下按钮的value
属性。
[ActionName("Index")]
[HttpPost]
public ActionResult IndexPost(string button, QcMatchViewModel model)
{
//Save Record and Redirect
return RedirectToAction("Index");
}
或者您可以将其他Button
属性添加到视图模型中。
查看this帖子了解其他一些功能。
答案 1 :(得分:1)
试试这个
on View:
<input type="submit" id="btnAcceptAll" name="btnAcceptAll" value"Accept" class="btn btn-lg btn-success"/ >
<input type="submit" id="btnRejectAll" name="btnRejectAll" value"Reject" class="btn btn-lg btn-success"/ >
在控制器上:
[ActionName("Index")]
[HttpPost]
public ActionResult IndexPost(FormCollection form, QcMatchViewModel model)
{
if(form["btnAcceptAll"]!=null)
{
//Accept Button Code
}
if(form["btnRejectAll"]!=null)
{
//Reject Button Code
}
//Save Record and Redirect
return RedirectToAction("Index");
}
答案 2 :(得分:0)
有两种可能的方式:
1&GT;在任一按钮单击上将该模型的一个属性设置为某个值。即,让我们说有一个名为&#34;接受&#34;点击btnAcceptAll,使用javascript / jquery将其值设置为true(将accept作为隐藏字段),然后使用action方法获取该值。
2 - ;有2种不同的动作方法,即acceptChanges和RejectChanges,并根据单击的按钮调用它们(再次使用Jquery在按钮点击时设置不同的表单动作)
答案 3 :(得分:0)
我想到的方法 您可以在模型中包含一个字段,其值可以由隐藏字段填充 所以你将在帖子上获得这个价值。
现在要填充此隐藏字段中的值,您可以截取按钮点击事件。
$(".btn").click(function(){
//fill hidden field value here
});