C# 将actionresult绑定到MVC5中的按钮
您好,我想在点击按钮时运行这个actionresult,让它只更改被点击的文档的文档状态,但是我对AJAX、JavaScript和JQuery了解不够,无法实现这一点,这里的所有其他问题在这个主题上都相当模糊,我想知道你们是否可以帮忙 ActionResult代码C# 将actionresult绑定到MVC5中的按钮,c#,visual-studio,asp.net-mvc-5,C#,Visual Studio,Asp.net Mvc 5,您好,我想在点击按钮时运行这个actionresult,让它只更改被点击的文档的文档状态,但是我对AJAX、JavaScript和JQuery了解不够,无法实现这一点,这里的所有其他问题在这个主题上都相当模糊,我想知道你们是否可以帮忙 ActionResult代码 public ActionResult ChangeStatus(int? id) { if (id == null) { return new HttpStatusCodeResult(Ht
public ActionResult ChangeStatus(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Document document = db.Documents.Find(id);
if (document.DocumentStatus == "Draft")
{
document.DocumentStatus = "Active";
db.Entry(document).State = EntityState.Modified;
db.SaveChanges();
return View(document);
}
else
{
document.DocumentStatus = "Draft";
db.Entry(document).State = EntityState.Modified;
db.SaveChanges();
return View(document);
}
}
如果你们能提供任何帮助,我们将不胜感激。您可以在视图中使用本机Razor语法进行此操作。按钮经常与表单一起使用,因此您可以使用以下内容:
<h3>Some HTML/Razor stuff up here...</h3>
@using (Html.BeginForm("ChangeStatus", "ControllerName", FormMethod.Post, new { id = "docId" }))
{
<input type="submit" value="Click Me!" />
}
这里有一些HTML/Razor的东西。。。
@使用(Html.BeginForm(“ChangeStatus”、“ControllerName”、FormMethod.Post、new{id=“docId”}))
{
}
确保更新控制器的名称,并提供有效的文档id值
function AjaxPost(url, data, fnSuccess, fnError) {
$.ajax({
type: "POST",
url: url,
data: JSON.stringify(data),
dataType: "json",
contentType: 'application/json; charset=utf-8',
success: Success,
error: Error
});
}
function Success() {
console.log("Success");
}
function Error() {
console.log("Error");
}
function ChangeStatusById() {
AjaxPost("/ControllerName/ChangeStatus", {
Id: id
}, Success, Error);
}
您必须通过jQuery获取id
并将[HttpPost]
属性添加到控制器
var id = $('#id').val();