C# 数据val required和数据val number必须具有相同的错误消息吗

C# 数据val required和数据val number必须具有相同的错误消息吗,c#,asp.net,asp.net-mvc,html,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Html,Asp.net Mvc 4,数据val required和数据val number必须具有相同的错误消息吗 当我查看HTML的生成输出时,我只是想知道 <div class="form-group"> @Html.LabelFor(m => m.Countries) <div class="row"> <div class="col-lg-4"> @Html.DropDownListFor(

数据val required和数据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; }
}
<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>
从上面生成的HTML如下所示:

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; }
}
<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>

为什么需要数据val和数据val编号有两条不同的消息?它们不需要相同吗?

如果用户根本没有提供任何输入,则显示“否”,如果提供的输入不是数字,则显示“数字”


您还可以在所需的错误消息中向用户提供信息,说明为什么需要该字段,而在数字错误消息中,您可以向用户提供其他信息,说明为什么该字段需要为数字。

该数字错误消息是默认错误消息?如何用错误消息覆盖它?我不想在错误消息中包含我的属性信息。这是一个很好的问题,到目前为止,我只使用范围进行检查,在或中找不到任何真正有用的内容,这些信息可以与一起使用