Ok acabo de descubrir acerca de la EditorForModel en MVC y quiero saber cuando debo usar este en lugar de un EditorFor en cada uno de mi propiedad? Y ¿por qué al añadir un establecimiento inflexible de tipos de punto de vista, no utilice este y construir un EditorFor en cada propiedad?

Llego tarde a este… pero gracias por la info!

  • Por favor, eche un vistazo a Brad wilson, blog
InformationsquelleAutor VinnyG | 2011-06-30

4 Comentarios

  1. 23

    Desde el aceptado respuesta es un enlace-respuesta única (y fue eliminado), he pensado que me gustaría responder a la cuestión derivada de Brad Wilson‘s Blog: ASP.NET MVC 2 Plantillas, Parte 1: Introducción.

    El modelo expresiones simples ayudantes que operan en el modelo actual. La línea de DisplayForModel() es equivalente a DisplayFor(modelo => modelo).

    TL;DR la misma idea puede ser asumidos por EditorFor(model => model) y EditorForModel(); estos métodos auxiliares de lograr la misma cosa. EditorForModel() asume el modelo de expresión es la @model que se pasa a la vista.

    Tomar los siguientes modelos y ver por ejemplo:

    public class Person
    {
        public string Name {get; set;}
        public Address MailingAddress {get; set;}
    }
    
    public class Address
    {
        public String Street {get; set;}
        public String City {get; set;}
        public String State {get; set;}
    }

    Create.cshtml:

    @model MyNamespace.Models.Person
    
    /* So, you need an Editor for the Person model? */
    @Html.EditorForModel()
    /*the above is equivalent to @Html.EditorFor(model => model) */
    
    /* you need to specify the Address property that the editor accepts? */
    @Html.EditorFor(model => model.MailingAddress)
  2. 3

    Se debe utilizar cuando sea posible, pero a veces se necesita la personalización del individuo Html.EditorFor usos.

    Cuanto a por qué las plantillas integradas no se usa, eso es principalmente porque son tontas en general, sino también porque, si mal no recuerdo, que necesidad de ajustar los elementos (como las filas de la tabla, etc.) alrededor de cada Html.EditorFor.

  3. 0

    @Html.EditorForModel() ?? Y de renunciar a la diversión de escribir su propio punto de vista? sonrisa

    Además de la diversión, hacerlo como un hábito es bastante arriesgado. Considere el siguiente escenario común – tiene una variable de tipo bool decir IsMale en su base de datos en la tabla de clientes. Bueno, obviamente, usted no quiere que la versión predeterminada (IsMale con un check-box) – probablemente quiere algo un poco más fácil, decir {seleccionar Opciones …. , /select} etiquetas, ¿verdad? que es donde el punto de vista realmente comienza a dar patadas en. Esa es la personalización. Cada punto de vista es un poco diferente. Usted tiene la maquinilla de AFEITAR del motor, explotar al máximo! En su opinión, puede invalidar cualquier cosa, o incluso escribir manualmente un todo el pedazo de código HTML de su propio.

    • EditorForModel() (sin argumentos) buscará personalizado EditorTemplates basado en el convenio. Que función tiene nada que ver con la lo de la plantilla utilizada.
    • ¿A qué se llama código adicto? Un codie?
  4. -5

    Nunca he usado EditorFor y no imaginar su uso en el futuro. EditorFor supone que sabe lo que quiere. Sabes lo que sucede cuando usted asume algo.

    Tal vez si estaban haciendo una rápida Mvc pico a prueba algo más que usted podría utilizar EditorFor.

    • Usted puede editar el «assumations» por sí mismo mediante la adición de EditorTemplates. Que es .cshtml archivos que se ejecuta cuando el EditorFor método se ejecuta. F. eks. DateTime.cshtml se ejecutan si la entrada en EditorFor es un DateTime.
    • DateTime es un gran ejemplo de por qué yo no uso EditorFor. DateTime puede ser la fecha, sólo, sólo hora o fecha y hora. Mediante la colocación exacta del tipo de entrada en la vista, yo lo sé, sin tener que abrir otro archivo de cómo un campo datetime va a ser tratada.
    • Personalmente, yo prefiero usar anotaciones de datos y el modelo de metadatos de los proveedores para controlar este tipo de cosas. Esto significa que mis opiniones pueden ser muy breve y la lógica para el control de la representación de la salida es en un solo lugar.
    • Yo no siento que esto responde a la pregunta.
    • Que fue sangrienta.
    • La respuesta no la dirección de la pregunta

Dejar respuesta

Please enter your comment!
Please enter your name here