MVC 3:我在哪里可以找到DisplayForModel和EditorForModel的默认模板

本文关键字:EditorForModel DisplayForModel 默认 在哪里 MVC | 更新日期: 2023-09-27 18:16:49

我在哪里可以找到DisplayForModel和EditorForModel的默认模板?

MVC 3:我在哪里可以找到DisplayForModel和EditorForModel的默认模板

找到默认模板:

ASP。. NET MVC 3 Futures/http://aspnet.codeplex.com/releases/view/58781

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<script runat="server">
    bool ShouldShow(ModelMetadata metadata) {
        return metadata.ShowForDisplay
            && metadata.ModelType != typeof(System.Data.EntityState)
            && !metadata.IsComplexType
            && !ViewData.TemplateInfo.Visited(metadata);
    }
</script>
<% if (Model == null) { %>
    <%= ViewData.ModelMetadata.NullDisplayText %>
<% } else if (ViewData.TemplateInfo.TemplateDepth > 1) { %>
    <%= ViewData.ModelMetadata.SimpleDisplayText %>
<% } else { %>
    <% foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => ShouldShow(pm))) { %>
        <% if (prop.HideSurroundingHtml) { %>
            <%= Html.Display(prop.PropertyName) %>
        <% } else { %>
            <% if (!String.IsNullOrEmpty(prop.GetDisplayName())) { %>
                <div class="display-label"><%= prop.GetDisplayName() %></div>
            <% } %>
            <div class="display-field"><%= Html.Display(prop.PropertyName) %></div>
        <% } %>
    <% } %>
<% } %>

我不确定你是否可以在不查看源代码的情况下看到默认值,但你可以在以下目录中创建自己的目录来覆盖默认值:

~/Views/Shared/EditorTemplates/Object.cshtml

~/Views/Shared/DisplayTemplates/Object.cshtml

这有帮助吗?

Brad Wilson的博客上有一篇很棒的文章,它将指导你如何创建自己的默认编辑器和显示模板:. NET MVC 2模板,第4部分:自定义对象模板