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

时间:2011-12-02 10:12:04

标签: asp.net-mvc asp.net-mvc-3 viewmodel validation

我有这段代码:

@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)

这个模型只是

public int FishId
{
    get;
    set;
}

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

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

@this.Html.ValidationMessageFor(vm => vm.FishId, "Gotta select a fish, man")

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

我将所有其他内容放在验证和消息中作为RequiredField(...)属性,或者在自定义验证方法中。

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

3 个答案:

答案 0 :(得分:11)

尝试将int置于可为空的

public int? FishId { get; set; } 

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

答案 1 :(得分:5)

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

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

答案 2 :(得分:1)

创建实例并将其传递给打开结果....

示例:return View(“Add”,new Customer());

这将使用默认值初始化所有值类型。