控制器
[ActionName("Index")]
[HttpPost]
public ActionResult IndexPost(string button, int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
string buttonClicked = Request.Form["SubmitButton"];
if(buttonClicked == "Accept")
{
CurrentApplication currentApplication = db.CurrentApplications.Find(id);
currentApplication.AppStatus = "APPROVED";
db.SaveChanges();
}
else if(buttonClicked == "Decline")
{
CurrentApplication currentApplication = db.CurrentApplications.Find(id);
currentApplication.AppStatus = "UNAPPROVED";
db.SaveChanges();
}
//Save Record and Redirect
return RedirectToAction("Index");
}
索引视图
<button type="submit" name="SubmitButton" value="Approve" class="btn btn-sm btn-success">Approve</button>
<button type="submit" name="SubmitButton" value="Unapprove" class="btn btn-sm btn-danger">Unapprove</button>
在我的索引视图中,我有一个表格,其中有数据行我可以&#34;批准&#34;或&#34;拒绝&#34;使用2个按钮。我尝试使用这些http://www.scriptscoop.net/t/b7bd27aee268/c-asp-net-mvc-two-different-buttons-in-form-submit.html和ASP.NET MVC two different buttons in form submit。当用户单击相应的按钮时,我希望状态值更改为“批准”或“拒绝”。但是我不确定为什么它不起作用,因为我尝试编码它与编辑视图类似。
答案 0 :(得分:3)
您可以将submit
按钮的值作为Action
方法的参数,现在您只需要在Action
内比较其值并执行更改即可需要。在您的视图中,“批准”按钮的按钮值为value="Approve"
,“取消批准”按钮的按钮值为value="Unapprove"
,而您将其与"Accept"
和"Decline"
进行比较。
[ActionName("Index")]
[HttpPost]
public ActionResult IndexPost(string SubmitButton, int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
string buttonClicked = SubmitButton;
if(buttonClicked == "Approve")
{
CurrentApplication currentApplication = db.CurrentApplications.Find(id);
currentApplication.AppStatus = "APPROVED";
db.SaveChanges();
}
else if(buttonClicked == "Unapprove")
{
CurrentApplication currentApplication = db.CurrentApplications.Find(id);
currentApplication.AppStatus = "UNAPPROVED";
db.SaveChanges();
}
//Save Record and Redirect
return RedirectToAction("Index");
}
答案 1 :(得分:0)
在HTML中,“批准”和“取消批准”按钮的值分别为Approve and Unapprove
。但是,在您的代码中,您要将buttonClicked
与Accept
和Decline
进行比较。
应该是这样的:
[ActionName("Index")]
[HttpPost]
public ActionResult IndexPost(string button, int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
string buttonClicked = Request.Form["SubmitButton"];
if(buttonClicked == "Approve") // value of Approve button
{
CurrentApplication currentApplication = db.CurrentApplications.Find(id);
currentApplication.AppStatus = "APPROVED";
db.SaveChanges();
}
else if(buttonClicked == "Unapprove") // value of Unapprove button
{
CurrentApplication currentApplication = db.CurrentApplications.Find(id);
currentApplication.AppStatus = "UNAPPROVED";
db.SaveChanges();
}
//Save Record and Redirect
return RedirectToAction("Index");
}
答案 2 :(得分:0)
你可以试试这个;
控制器:
[ActionName("Index")]
[HttpPost]
public ActionResult IndexPost(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var result = Request.Form["result"];
CurrentApplication currentApplication = db.CurrentApplications.Find(id);
currentApplication.AppStatus = result;
db.SaveChanges();
//Save Record and Redirect
return RedirectToAction("Index");
}
查看
<input type="hidden" name="result" id="result" />
<a data-value="Approve" class="btn btn-sm btn-success submitButton">Approve</a>
<a data-value="Unapprove" class="btn btn-sm btn-danger submitButton">Unapprove</a>
的Javascript
<script>
$('.submitButton').on('click', function (e) {
e.preventDefault();
$('#result').val($(this).data('value'));
$('form').submit();
});
</script>