模型中的C#属性,如Labelfor和EditorFor

时间:2018-07-04 13:45:27

标签: c# asp.net-mvc mvvm

我有一个ViewModel,里面有一些列表。 我想显示以下属性:

    public string Status { get; set; }
    public DateTime Applicationdate { get; set; }
    public DateTime Submitdate { get; set; }
    public Boolean CustomerAgreementBoolean { get; set; }
    public DateTime CustomerAgreementBooleanDate { get; set; }
    public string MultiannualContract { get; set; }

它们是更大模型的一部分。当我在视图中执行此操作时,它一半有效:

        @foreach (var offeritem in Model.Offermodel)
        {
           <div class="col-md-3 mb-3">
               @Html.LabelFor(model => model.Offermodel)
               @Html.EditorFor(x => offeritem.Applicationdate, new { 
               htmlAttributes = new { @class = "form-control", required = 
               "required" } })
               @Html.ValidationMessageFor(x => offeritem.Applicationdate, "", 
               new { @class = "text-danger" })
               </div>
           }

标签和编辑器的名称变为:Offeritem.Applicationdate,而不是“ Applicationdate”

有什么方法可以显示正确的名称?

1 个答案:

答案 0 :(得分:0)

嵌套属性的名称将以这种方式呈现。您可以通过在HTML帮助器中传递属性值来更改名称属性,例如

 @Html.EditorFor(x => offeritem.Applicationdate, new { 
               htmlAttributes = new { @class = "form-control", required = 
               "required", name="Applicationdate" } })

但是它不会绑定到表单发布中的嵌套属性。