如何设置默认值HTML.EditorFor()(how to set default value H

2019-09-03 08:10发布

我怎么能在我的editorboxes设置的默认值,这样的情况下,我不写在箱子东西它不会发送一个空值。

 <div class="editor-label">
        @Html.Label("Description")
        </div>                                           // somthing like
       <div>@Html.EditorFor(model => model.Description, " Default value ")
        @Html.ValidationMessageFor(model => model.Description)
    </div>

或者,如果我更改为:

 @Html.TextBoxFor(Model.somthing, "Default value")

Answer 1:

要显示的字段必须指定“值”属性在htmlAttributes它就像这个例子的默认值:

@Html.EditorFor(model => model.Description,  new { htmlAttributes = new { @class = "form-control", @Value = ViewBag.DefaultDescription } })

请确保值在V是大写的。

这样,你只会被分配在HTML领域,而不是在模型中的默认值。

模型中的力,你指定默认值先创建模型对象,这将设置默认值不可为空的字段,如日期时间,这将使页面显示annoyings在1001年1月1日00:00:00值日期时间字段,你可以在模型的其余部分。



Answer 2:

最简单的方法是在你的模型构造函数来初始化属性:

public class PersonModel {
    public PersonModel () {
        FirstName = "Default first name";
        Description = "Default description";
    }
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Description { get; set; }
}

而当你想将它发送到视图,例如在PersonController.Create动作方法:

public ActionResult Create() {
    var model = new PersonModel();
    return View(model);
}

[HttpPost]
public ActionResult Create(PersonModel model) {
    // do something on post-back 
}

这就对了。 请记住,你必须创建模型的一个新实例,并把它传递给视图中使用它的默认值。 由于考虑到与这种操作方法有关,需要一个PersonModel实例,但是当你使用create方法是这样的:

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

认为没有什么(我的意思是null ),所以您的默认值是不存在的事实。

但是,如果你想为复杂的目的,为此,使用例如,作为水印默认值,或作为@JTMon说,你不希望最终用户看到的默认值,你将有一些其他的解决方案。 请让我知道你的目的。



Answer 3:

而不是使用

 @Html.EditorFor(model => model.UserId) 

使用

@Html.TextBoxFor(model => model.UserId, new { @Value = "Prabhat" })


Answer 4:

如何定义你的模型有“默认值”,其财产以后财产? 在这种情况下,你不需要做什么特别的事情。 如果不是令人满意的(例如,您不希望用户在屏幕上看到“默认值”),你可以有这种模式,从DefaultModelBinder继承的自定义模型绑定,覆盖只是OnModelUpdated方法,它做沿着线的东西:

model.somthg = string.IsNullOrEmpty(model.somthing) ? "Default Value" : model.somthing

另请注意,EditorFor忽略自定义HTML属性,你发送给它的据我所知。



文章来源: how to set default value HTML.EditorFor()