必须data-val-required和data-val-number具有相同的错误消息

时间:2014-02-18 13:06:17

标签: c# asp.net asp.net-mvc html5 asp.net-mvc-4

必须data-val-requireddata-val-number有相同的错误消息吗?

我只是想知道我正在查看HTML的生成输出。

<div class="form-group">
     @Html.LabelFor(m => m.Countries)
     <div class="row">
          <div class="col-lg-4">
               @Html.DropDownListFor(
                    m => m.CountryId,
                    new SelectList(Model.Countries, "Id", "Name", Model.CountryId),
                    "-- Select --",
                    new { @class = "form-control" }
               )
          </div>
     </div>
     @Html.ValidationMessageFor(x => x.CountryId)
</div>

我的viewmodel看起来像这样:

public class MyViewModel : ViewModelBase
{
     public MyViewModel()
     {
          Countries = Enumerable.Empty<CountryDTO>();
     }

     [Required(ErrorMessage = "Country is required")]
     public int CountryId { get; set; }

     [Display(Name = "Country")]
     public IEnumerable<CountryDTO> Countries { get; set; }
}

上面生成的HTML如下所示:

<select name="CountryId" id="CountryId" data-val-required="Country is required" data-val-number="The field CountryId must be a number." data-val="true" class="form-control">
     <option value="">-- Select --</option>
     <option value="1">country 1</option>
     <option value="2">country 2</option>
     <option value="3">country 3</option>
     <option value="4">country 4</option>
</select>

为什么data-val-requireddata-val-number有2条不同的消息?他们不需要一样吗?

1 个答案:

答案 0 :(得分:0)

不,当用户根本没有提供任何输入时显示必需,而当提供的输入不是数字时显示数字。

您也可以通过以下方式查看它:在所需的错误消息中,您可以向用户提供信息,为什么需要该字段,而在数字错误消息中,您可以向用户提供其他信息,为什么字段需要是数字。