使用相同的局部视图进行编辑和显示

BKa*_*una 0 .net c# asp.net-mvc partial-views asp.net-mvc-3

我想使用相同的局部视图来显示记录和编辑记录.两个函数的布局都是相同的,它看起来比拥有EditRecord局部视图和DisplayRecord局部视图要清晰得多.如果我只有一个部分视图要更新,维护将更容易.

我现在正在使用它并且它有效:

<div class="editor-label">
    @Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
    @if (@ViewBag.ViewMode == "display")
    {
        @Html.DisplayFor(model => model.FirstName)
    }
    else
    {
        @Html.EditorFor(model => model.FirstName)
    }
    @Html.ValidationMessageFor(model => model.FirstName)
</div>
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

谢谢.

Eri*_*sch 7

我强烈建议使用单独的编辑和显示模板.尝试以单一形式进行这些操作会使它们更加混乱,并且从长远来看难以维护.关注点的分离是MVC的口头禅,你正试图结合关注点......