【问题标题】:MVC controlling which properties are shown with DisplayFor?MVC 控制 DisplayFor 显示哪些属性?
【发布时间】:2011-10-22 01:49:49
【问题描述】:

我正在使用 MVC 的 DisplayFor 方法来显示属性的值。然而,如果这个值是另一个模型对象,那么它将包括那个对象的“ID”属性。我不喜欢这样,并且在我的应用程序中不需要显示内部数据库 ID。

我可以(通过注释或类似的方式)将此属性标记为“不包括”在 DisplayFor 过程中吗?

【问题讨论】:

    标签: asp.net-mvc displayfor


    【解决方案1】:

    您可能没有利用 DisplayFor 的功能:

    <%=Html.DisplayFor(m => m.Property) %>
    

    假设Property 的类型为User

    现在您可以创建一个DisplayTemplate(~/Views/Shared/DisplayTemplates/User.ascx),它的强类型为User,也命名为User.ascx。由于PropertyUser,MVC 会将这个object 绑定到这个UserDisplayTemplate

    可能是这样的:

    <%@ Control Language="C#" Inherits="ViewUserControl<User>" %>
    <h2><%=Model.Name %></h2>
    <strong><%=Model.Email %></strong>
    

    现在您可以在传递给DisplayFor的对象中显示/隐藏您想要的任何内容

    【讨论】:

      猜你喜欢
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 2019-03-01
      • 2014-01-11
      相关资源
      最近更新 更多