Creé un modelo de primer código EF4.1 (puede o no ser importante) y estoy tratando de obtener valores predeterminados para mi plantilla Crear andamio. Mi modelo se parece a:Anotación de propiedades en un modelo con valores predeterminados
class Person {
[DefaultValue (18)]
public int Age { get; set; }
}
y luego mi Crear vista parece:
<div class="editor-label">
@Html.LabelFor(model => model.Age)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Age)
@Html.ValidationMessageFor(model => model.Age)
</div>
que esperaría en tiempo de ejecución, que el EditorFor sería rellenar previamente el cuadro de texto con "18", pero lo hace no tal cosa. ¿Estoy entendiendo mal para qué es el atributo DefaultValue, o hay algo más que debería hacer?
Nota: No quiero utilizar la anulación new { Value = "18" }
en el método EditorFor, parece romper DRY.
debo añadir que yo ya probé establecer la propiedad Edad en el constructor, lo que no parece funcionar bien. Sin embargo, la Vista está fuertemente tipada a Person. Sin embargo, lo que me faltaba era pasar una nueva Persona a la vista. Eso hizo lo que yo quería, y su solución es lo suficientemente SECA :) (Estoy omitiendo DefaultValue por completo, y simplemente usando los constructores) –
¿Cómo se accede al atributo DefaultValue? No puedo encontrarlo – Johannes
@Johannes quizás le falta el 'using System.ComponentModel' - http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute.aspx –