使用mvc3中的javascript进行自定义验证

时间:2012-12-29 10:53:32

标签: asp.net-mvc-3 validation

我是MVC3的新手。我在自定义验证方面遇到问题,例如

在我的BasicInfoViewModel.cs中,

[Required]
    [Display(Name = "State", ResourceType = typeof(Resources.Global))]
    public string State { get; set; }

    [Display(Name = "City", ResourceType = typeof(Resources.Global))]
    public string City { get; set; }

在我的BasicDetailsView.cshtml中,

<label>
<span class="td">@Application.Resources.Global.State</span>
 @Html.DropDownListFor(m => m.State, (List<SelectListItem>)ViewData["State"])
</label>
<label>
<span class="td">@Application.Resources.Global.City</span>
@Html.DropDownListFor(m => m.City, (List<SelectListItem>)ViewData["City"])
</label>

如果属性返回 true ,则只需“城市”。如果没有,则不需要城市,然后应该禁用文本框。 我没有使用 EditorFor ,使用 DropDownListFor ,因为我使用普通的html。任何人都可以帮我解决这个问题吗? 感谢...

2 个答案:

答案 0 :(得分:3)

MVC Foolproof是一组验证数据注释,可扩展现有注释并提供其他功能。例如,此包中的[RequiredIfNotEmpty]属性非常适合您的场景,因为它允许条件验证。

[Display(Name = "State", ResourceType = typeof(Resources.Global))]
public string State { get; set; }

[RequiredIfNotEmpty("State")]
[Display(Name = "City", ResourceType = typeof(Resources.Global))]
public string City { get; set; }

现在State属性是可选的。但如果它有一些价值,那么城市财产是必需的。

答案 1 :(得分:0)

您可能需要查看RequiredIfAttribute。要禁用您的城市下拉列表 - 请使用jquery。为了检查数据是否有效,你有js方法$(“selector”) .valid(),返回0或1,并显示指定字段的验证消息