我创建了一个EF4.1代码优先的模型(可能重要也可能不重要),并且试图为我的Create脚手架模板获取默认值。我的模型看起来像:使用默认值在模型上注释属性
class Person {
[DefaultValue (18)]
public int Age { get; set; }
}
,然后我的创建视图的样子:
<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>
我希望在运行时,该EditorFor将与“18”预填充的文本框,但它确实没有这样的事。我误解了DefaultValue属性的用途,还是有其他我应该做的事情?
注意:我不想在EditorFor方法上使用new { Value = "18" }
重写,它似乎打破DRY。
我要补充一点,我已经尝试在构造函数,它似乎没有任何工作设置年龄属性。该视图强烈键入Person。但是,我错过的是将一个新的人物传递到视图中。这做了我想要的,并且你的解决方案已经足够干了:)(我完全省略了DefaultValue,只是使用了构造函数) –
你如何访问DefaultValue属性?我找不到它。 – Johannes
@Johannes也许你错过了'使用System.ComponentModel' - http://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute.aspx –