asp.net-mvc-3 – 在具有默认值的模型上注释属性

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – 在具有默认值的模型上注释属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个EF4.1代码优先模型(可能或可能不重要),我正在尝试为我的创建脚手架模板获取默认值。我的模型看起来像:
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方法上使用新的{Value =“18”}覆盖,似乎打破了DRY。

解决方法

我不知道这是否会满足您的DRY需求,但这是我想的一个开始。

我会把这个模型改写成这样:

public class Person {
    private const int DEFAULT_AGE = 18;
    private int _age = DEFAULT_AGE;
    [DefaultValue(DEFAULT_AGE)]
    public int Age {
        get { return _age; }
        set { _age = value; }
    }
}

保持视图原样,但在创建操作中执行此操作:

public ActionResult Create() {
    return View(new Person());
}

这样,输入文本框将使用默认的Age值创建,并且只有一个地方将指定默认值。

原文链接:https://www.f2er.com/aspnet/253711.html

猜你在找的asp.Net相关文章