Necesito modificar la plantilla de editor predeterminada para el andamiaje, pero no he encontrado la plantilla Object.cshtml, ¿dónde puedo encontrar la plantilla predeterminada de razor Object.cshtml Editor?¿Dónde puedo encontrar la plantilla predeterminada Editor de Object.cshtml?
Respuesta
La siguiente entrada del blog se describe cómo personalizar las plantillas de edición: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-4-custom-object-templates.html
Básicamente hay que añadir un archivo llamado Views\Shared\EditorTemplates\Object.cshtml
y poner toda la lógica para visualizar el objeto allí.
Cuando @marcind dice que están compilados, las plantillas en sí mismas no están incrustadas, sino que están escritas en código. Por ejemplo, EditorFor
llama al TemplateFor
que puede llamar al TextAreaExtensions.TextArea
o a una de muchas otras extensiones que generan el código que finalmente se emite. Esto puede deberse a que tenemos la opción de eliminar el motor de vista predeterminado y usar algo como nhaml.
La asignación entre los nombres de la plantilla y la función que crea la salida resultante se puede ver en System.Web.Mvc.Html.TemplateHelpers
. Vea también System.Web.Mvc.Html.DefaultEditorTemplates
.
Lo más parecido que existe en este momento son las plantillas de Webforms que existen en Mvc3Futures que están disponibles en el aspnet.codeplex.com website. Dentro de ella existe una carpeta DefaultTemplates \ EditorTemplates que contiene las plantillas.
Aquí está la plantilla Object.ascx:
<%@ 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>
<% } %>
<% } %>
<% } %>
- 1. ¿Dónde puedo encontrar un editor HTML de Silverlight con WYSIWYG?
- 2. ¿Cómo hacer una plantilla de editor predeterminada para enumeraciones?
- 3. ¿Dónde puedo encontrar la aplicación para IVCWizCtlUI
- 4. ¿Dónde encontrar la mejor plantilla de historia de usuario?
- 5. ¿Dónde almacena la plantilla predeterminada MVC3 la información de la cuenta de usuario?
- 6. ¿Dónde puedo encontrar TableDiff.exe?
- 7. ¿Dónde puedo encontrar Microsoft.Build.Utilities.v3.5
- 8. ¿Dónde puedo encontrar GACUtil?
- 9. ¿Dónde puedo encontrar "j_security_check"?
- 10. ¿Dónde puedo encontrar WSDL.exe?
- 11. ¿Dónde puedo encontrar la documentación de MSpec?
- 12. ¿Dónde puedo encontrar la documentación de PythonMagick?
- 13. ¿Dónde puedo encontrar la implementación de XMLHttpRequest?
- 14. ¿Dónde puedo encontrar la fuente de System.Web.Optimization?
- 15. ¿Dónde puedo encontrar la documentación de Hpricot?
- 16. ¿Dónde puedo encontrar los registros de IIS?
- 17. Creación de un editor de plantillas object.cshtml con MVC y Razor
- 18. Dónde puedo encontrar buena documentación en OpenXML
- 19. ¿Dónde puedo encontrar la documentación jsdom?
- 20. ¿dónde puedo encontrar la extensión php php_memcached.dll?
- 21. ¿Dónde puedo encontrar la especificación API para MvcTextTemplateHost?
- 22. ¿Dónde puedo encontrar usuarios beta?
- 23. C++ plantilla predeterminada Constructor
- 24. ¿Dónde puedo encontrar el número de línea en el editor Xcode?
- 25. ¿Dónde puedo encontrar el widget del editor de código fuente Qt4?
- 26. ¿Dónde puedo encontrar la documentación de la API para tkinter?
- 27. ¿Dónde puedo encontrar la fuente de la jarra springloaded-core?
- 28. ¿Dónde puedo encontrar una biblioteca de ECommerce?
- 29. ¿Dónde puedo encontrar ejemplos claros de MVC?
- 30. ¿Dónde puedo encontrar buena documentación de AREL?
Busco la plantilla original, por lo que sólo se puede modificar lo que necesito cambiar en lugar de escribirlo desde el principio, de todos modos creo que sólo voy usa el aspx one y conviértelo en navaja. – ryudice
La plantilla "original" está realmente codificada en System.Web.Mvc.dll por lo que no hay ningún archivo asxc o cshtml que pueda ver. Hacer esas plantillas predeterminadas más disponibles es algo en la lista para MVC 4, aunque no puedo prometer nada. – marcind