【发布时间】:2011-10-22 01:49:49
【问题描述】:
我正在使用 MVC 的 DisplayFor 方法来显示属性的值。然而,如果这个值是另一个模型对象,那么它将包括那个对象的“ID”属性。我不喜欢这样,并且在我的应用程序中不需要显示内部数据库 ID。
我可以(通过注释或类似的方式)将此属性标记为“不包括”在 DisplayFor 过程中吗?
【问题讨论】:
我正在使用 MVC 的 DisplayFor 方法来显示属性的值。然而,如果这个值是另一个模型对象,那么它将包括那个对象的“ID”属性。我不喜欢这样,并且在我的应用程序中不需要显示内部数据库 ID。
我可以(通过注释或类似的方式)将此属性标记为“不包括”在 DisplayFor 过程中吗?
【问题讨论】:
您可能没有利用 DisplayFor 的功能:
<%=Html.DisplayFor(m => m.Property) %>
假设Property 的类型为User
现在您可以创建一个DisplayTemplate(~/Views/Shared/DisplayTemplates/User.ascx),它的强类型为User,也命名为User.ascx。由于Property 是User,MVC 会将这个object 绑定到这个UserDisplayTemplate。
可能是这样的:
<%@ Control Language="C#" Inherits="ViewUserControl<User>" %>
<h2><%=Model.Name %></h2>
<strong><%=Model.Email %></strong>
现在您可以在传递给DisplayFor的对象中显示/隐藏您想要的任何内容
【讨论】: