在哪里可以找到DisplayForModel和EditorForModel的默认模板?
答案 0 :(得分:6)
在此处找到默认模板:
ASP.NET MVC 3期货/ 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>
<% } %>
<% } %>
<% } %>
答案 1 :(得分:3)
我不确定是否/在哪里可以看到默认值而不查看源代码,但您可以在以下目录中创建自己的默认值来覆盖默认值:
~/Views/Shared/EditorTemplates/Object.cshtml
和
~/Views/Shared/DisplayTemplates/Object.cshtml
这有帮助吗?
这是Brad Wilson博客上的一篇精彩文章,它将指导您如何创建自己的默认编辑器和显示模板:ASP.NET MVC 2 Templates, Part 4: Custom Object Templates