我想从我的数据库中删除一条记录,但是在删除确认视图中
DisplayFor Helper不显示我的数据库中的任何记录
DisplayNameFor工作正常,我不知道自己做错了什么,
任何帮助将不胜感激。
这是我的代码。
控制器代码:
public ActionResult Delete(int id)
{
return View();
}
[HttpPost]
public ActionResult Delete(int id, FormCollection collection)
{
try
{
using (var db = new Database1Entities())
{
var tooltip = db.tooltip_tbl.Find(id);
db.tooltip_tbl.Remove(tooltip);
db.SaveChanges();
return RedirectToAction("Index");
}
}
catch
{
return View();
}
}
观看代码:
@model WebApplication7.Models.tooltip_tbl
@{
ViewBag.Title = "Delete";
}
<h2>Delete</h2>
<h3>Are you sure you want to delete this?</h3>
<div>
<hr />
<dl class="dl-horizontal">
<dt>@Html.DisplayNameFor(item => item.Title)</dt>
<dd>@Html.DisplayFor(item => item.Title)</dd>
<dt>@Html.DisplayNameFor(item => item.Info)</dt>
<dd>@Html.DisplayFor(item => item.Info)</dd>
</dl>
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
<div class="form-actions no-color">
<input type="submit" value="Delete" class="btn btn-default" /> |
@Html.ActionLink("Back to List", "Index")
</div>
}
</div>
答案 0 :(得分:1)
使用当前代码,您的GET操作方法不会将任何内容传递给您的删除视图。因此,您的视图模型实际上是null
,DisplayFor
辅助方法正在为您进行空检查,因此您没有获得任何空引用异常。
您需要在GET操作中将有效的tootip对象传递给您的视图。
public ActionResult Delete(int id)
{
var tooltip = db.tooltip_tbl.Find(id);
return View(tooltip);
}