MVC批准或不批准按钮
本文关键字:按钮 MVC | 更新日期: 2023-09-27 18:28:00
控制器
[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>
在我的"索引"视图中,我有一个表,其中有行数据,我可以使用2个按钮"批准"或"不批准"。我试过用这些http://www.scriptscoop.net/t/b7bd27aee268/c-asp-net-mvc-two-different-buttons-in-form-submit.html和ASP.NET MVC表单提交中的两个不同按钮。我希望在用户单击相应按钮时,状态值更改为"批准"或"不批准"。但我不确定为什么它不起作用,因为我试图用类似于编辑视图的方式对它进行编码。
您可以将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");
}
在HTML中,"批准"answers"取消批准"按钮的值分别为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");
}
您可以尝试一下;
控制器:
[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>