Display For 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>

使用当前代码,您的获取操作方法没有将任何内容传递给您的删除视图。因此,您的视图模型实际上是nullDisplayFor辅助方法正在为您进行无效检查,因此您没有获得任何零参考异常。

您需要将有效的tootip对象传递给您的视图,在您的获取行动中。

public ActionResult Delete(int id)
{
    var tooltip = db.tooltip_tbl.Find(id);
    return View(tooltip);
}