我是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。任何人都可以帮我解决这个问题吗? 感谢...
答案 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,并显示指定字段的验证消息