DisplayFor 帮助程序不会在删除视图中填充数据库中的记录

DisplayFor helper does not populate records from database in delete view

我想从我的数据库中删除一条记录,但是在删除确认视图中

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>

使用您当前的代码,您的 GET 操作方法不会将任何内容传递给您的删除视图。因此,您的视图模型实际上是 null,而 DisplayFor 辅助方法正在为您优雅地进行空值检查,因此您不会收到任何空值引用异常。

您需要在 GET 操作中将有效的 tootip 对象传递给您的视图。

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