加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 重用MVC视图同时显示数据和编辑数据

发布时间:2020-12-16 10:01:30 所属栏目:asp.Net 来源:网络整理
导读:我有两个MVC视图…一个用于显示细节,另一个用于编辑值.它们使用几乎相同的模板,但在切换到编辑器视图时DisplayFor更改为EditorFor.如何在视图中重用我的基本布局结构,这样如果我需要更改基本布局,我只需要在一个位置而不是多个视图中进行? 以下是显示视图中
我有两个MVC视图…一个用于显示细节,另一个用于编辑值.它们使用几乎相同的模板,但在切换到编辑器视图时DisplayFor更改为EditorFor.如何在视图中重用我的基本布局结构,这样如果我需要更改基本布局,我只需要在一个位置而不是多个视图中进行?

以下是显示视图中使用的表的示例:

<table>
  <tr>
    <td class="label">First Name:</td>
    <td class="field">@Html.DisplayFor(x => Model.FirstName)</td>
  </tr>
  <tr>
    <td class="label">Last Name:</td>
    <td class="field">@Html.DisplayFor(x => Model.LastName)</td>
  </tr>
  <tr>
    <td class="label">Email:</td>
    <td class="field">@Html.DisplayFor(x => Model.Email)</td>
  </tr>
</table>

解决方法

您可以将Mode属性添加到视图模型中:

public bool IsInEditMode { get; set; }

然后,您的控制器可以使用相同的视图和模型,只是相应地设置此属性.你的观点最终会像:

<table>
  <tr>
    <td class="label">First Name:</td>
    <td class="field">
        @if (!Model.IsInEditMode)
        {
            @Html.DisplayFor(x => Model.FirstName)
        }
        else
        {
            (render EditorFor plus any validation helpers)
        }
    </td>
  </tr>
  ...etc...
</table>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读