如何在MVC中突出显示新添加的条目?

时间:2013-11-09 05:35:43

标签: asp.net-mvc highlighting

我使用EntityFramework在MVC 4中创建了一个数据库应用程序。它工作正常,但是我找不到突出显示新增加项目到我的表(html)的方法。是否可以在MVC中突出显示数据库应用程序中的新行?就像在C#中一样:

DataGrid.SelectedItem 

任何建议或帮助都会非常明确。如何在MVC中突出显示一行?

1 个答案:

答案 0 :(得分:3)

你是如何呈现桌子的?

一种选择是使用TempData。将添加项的标识符存储在TempData中,并在呈现表时检查标识符。

ItemController:

// POST: /Item/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include="Id,Name")] Item item)
{
    if (ModelState.IsValid)
    {
        db.Items.Add(item);
        db.SaveChanges();

        TempData["AddedItemId"] = item.Id;
        return RedirectToAction("Index");
    }

    return View(item);
}

项目视图:

<!-- Views\Item\Index.cshtml -->
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th></th>
    </tr>

    @foreach (var item in Model)
    {
        var className = "";

        if (TempData["AddedItemId"] != null && (int)TempData["AddedItemId"] == item.Id)
        {
            className = "alert-info";
        }
        <tr class="@className">
            <td>
                @Html.DisplayFor(modelItem => item.Name)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
                @Html.ActionLink("Details", "Details", new { id = item.Id }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.Id })
            </td>
        </tr>
    }
</table>