我开始使用VS MVC 5可以创建的脚手架,并且它工作正常,但我希望能够从详细信息页面删除记录(" Interviews",在这种情况下)。
我首先将标记从删除页面上的删除按钮复制到详细信息,但它只是重定向到详细信息操作。如何在“详细信息”页面上获取一个按钮以运行DeleteConfirmed方法?
以下是控制器的相关代码:
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Interview interview = db.Interviews.Find(id);
if (interview == null)
{
return HttpNotFound();
}
return View(interview);
}
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Interview interview = db.Interviews.Find(id);
db.Interviews.Remove(interview);
db.SaveChanges();
return RedirectToAction("Index");
}
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Interview interview = db.Interviews.Find(id);
if (interview == null)
{
return HttpNotFound();
}
return View(interview);
}
这是我从“删除”页面复制并放入“详细信息”视图的标记:
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
<div class="form-actions no-color">
<input type="submit" value="Delete" class="btn btn-danger" />
</div>
}
以下是我需要的标记:
@using (Html.BeginForm("Delete", "Interviews", new { id = Model.ID })) {
@Html.AntiForgeryToken()
<div class="form-actions no-color">
<input type="submit" value="Delete" class="btn btn-danger" />
</div>
}
答案 0 :(得分:2)
您需要发布到DeleteConfirm
操作。在此处,您已发布到Details
操作,因为您只使用Html.BeginForm()
。你需要:
@using (Html.BeginForm("Delete", new { id = Model.Id })) {
答案 1 :(得分:-1)
您可以通过javascript在这样的onclickling方法上获取删除确认
//change input type to button to prevent form submit
<input **type="button"** onClick="deleteConfirm" value="Delete" class="btn btn-danger" />
function deleteConfirm()
{
$.ajax({
url: "DeleteConfirmed Action Url",
type:"post",
data:{id:}
success: function(response) {
//check your server side result
}
});
}