2011-02-11 42 views

cevap

8

aşağıdaki blog yazısı editörü şablonları özelleştirmek açıklamaktadır: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-4-custom-object-templates.html

Temel olarak Views\Shared\EditorTemplates\Object.cshtml adlı bir dosya ekleyin ve orada nesneyi görüntülemek için tüm mantığı koymak zorunda.

+0

Ben orijinal şablona arıyorum, o yüzden ben baştan yazmak yerine değiştirmek için gerekenleri değiştirebilirsiniz:

İşte Object.ascx şablon var aspx birini kullanın ve jilet dönüştürmek. – ryudice

+7

"Orijinal" şablonu aslında System.Web.Mvc.dll dosyasında kodlanmıştır, böylece bakabileceğiniz bir asxc veya cshtml dosyası yoktur. Bu varsayılan şablonları daha kullanılabilir hale getirmek MVC 4 için listede bir şeydir, ancak hiçbir şey için söz veremem. – marcind

4

@marcind, derlendiklerini söylediğinde, şablonların kendileri gömülü değil, kod olarak yazılır. Örneğin, EditorFor, TextAreaExtensions.TextArea numaralı telefonu arayabilen TemplateFor numaralı telefonu veya sonuçta çıkan çıktıyı üreten diğer birçok uzantıyı arayabilir. Bunun nedeni, varsayılan görünüm motorunu kaldırma ve nhaml gibi bir şey kullanma seçeneğimiz olabilir.

Şablon isimleri ile ortaya çıkan çıktısı yaratan işlev arasındaki eşleştirme, System.Web.Mvc.Html.TemplateHelpers'da görülebilir. Ayrıca bkz. System.Web.Mvc.Html.DefaultEditorTemplates.

Şu anda mevcut olan en yakın şey, aspnet.codeplex.com website adresinde bulunan Mvc3Futures içinde bulunan Webforms şablonlarıdır. İçinde şablonları içeren bir DefaultTemplates \ EditorTemplates klasörü vardır. Neyse ben sadece olacak sanırım,

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