我有两个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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。