加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 18:43:01 所属栏目:asp.Net 来源:网络整理
导读:我创建了一个EF4.1代码优先模型(可能或可能不重要),我正在尝试为我的创建脚手架模板获取默认值。我的模型看起来像: class Person { [DefaultValue (18)] public int Age { get; set; }} 然后我的创建视图看起来像: div class="editor-label" @Html.LabelF
我创建了一个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值创建,并且只有一个地方将指定默认值。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读