我使用MVC的DisplayFor方法来显示属性的值。但是,如果这个值是另一个Model-object,那么它将包含该对象的"ID"属性。我不喜欢那样,并且在我的应用程序中没有必要显示内部数据库ID。
我可以(通过注释或类似的东西)将此属性标记为"不包含"在DisplayFor进程中吗?
您可能没有利用DisplayFor
可以做的事情:
<%=Html.DisplayFor(m => m.Property) %>
假设Property
的类型是User
现在你可以创建一个DisplayTemplate
(~/Views/Shared/DisplayTemplates/User.ascx),它是强类型的User
,也命名为User.ascx
。由于Property
是User
, MVC将把这个object
绑定到这个User
DisplayTemplate
。
可以像这样:
<%@ Control Language="C#" Inherits="ViewUserControl<User>" %>
<h2><%=Model.Name %></h2>
<strong><%=Model.Email %></strong>
现在你可以显示/隐藏任何你想要的对象,你传递给DisplayFor