MVC3尽管没有[Required]属性,但仍然需要"属性字段"错误

Nib*_*Pig 4 validation asp.net-mvc viewmodel asp.net-mvc-3

我有这个代码:

@this.Html.DropDownListFor(vm => vm.FishId, 
    new SelectList(this.Model.Fishies, "FishId", "FishName", this.Model.FishId), "Please Select a Fish")

@this.Html.ValidationMessageFor(vm => vm.FishId)
Run Code Online (Sandbox Code Playgroud)

这个模型很简单

public int FishId
{
    get;
    set;
}
Run Code Online (Sandbox Code Playgroud)

所以这里没有验证.当我按提交时,我收到一条消息说The FishId Field is Required..这是客户端验证错误.知道是什么导致了这个吗?

如果我将验证消息更改为:

@this.Html.ValidationMessageFor(vm => vm.FishId, "Gotta select a fish, man")
Run Code Online (Sandbox Code Playgroud)

然后错误消息在下拉列表的右侧发生更改(这就是我想要的),但验证摘要仍会显示原始消息.

我把所有其他的东西都作为RequiredField(...)属性或者自定义验证方法中的验证和消息.

发生了什么,我该如何更改验证摘要消息?

Iri*_*dio 11

尝试将int置于可空

public int? FishId { get; set; } 
Run Code Online (Sandbox Code Playgroud)

它应该通过验证,因为您允许空值


tor*_*orm 5

不确定是否要禁用验证或更改错误消息.如果是后者,那么您应该尝试将以下内容添加到您的模型中.

[Required(ErrorMessage="Gotta select a fish, man")]
public int FishId {get;set;}
Run Code Online (Sandbox Code Playgroud)