我有一个客户对象
[StringLength(50)]
[Display(Name="First Name")]
[Required(ErrorMessage = "Required")]
[RegularExpression("([a-zA-Z]+)", ErrorMessage = "only alphabets allowed")]
public new string FirstName { get; set; }
[StringLength(50)]
[Display(Name = "Last Name")]
[Required(ErrorMessage = "Required")]
[RegularExpression("([a-zA-Z]+)", ErrorMessage = "only alphabets allowed")]
public new string LastName { get; set; }
我在"添加"视图和"搜索"视图中使用这个对象
视图:
<li>
@Html.LabelFor(x=>x.FirstName)
@Html.TextBoxFor(x => x.FirstName, new { required=false })
</li>
<li>
@Html.LabelFor(x=>x.LastName)
@Html.TextBoxFor(x => x.LastName, new { required=false })
</li>
在添加视图中,我希望所有的数据注释属性工作。它正在做相应的事情。但是在我的"搜索"视图中,我不希望这些字段是必需的。数据注释的其余部分可以保留。
这可能吗?
好吧。我就是这么处理我的案子的。而不是创建一个新的ViewModel,我已经添加了一个类到我所有的形式作为SearchForm
和使用JavaScript我已经删除了所有必需的属性。
//Clear Form Required stuff for search
$(function () {
$(".SearchForm").find("input:text").each(function () {
$(this).removeAttr("data-val-required");
});
$(".SearchForm").find("select").each(function () {
$(this).removeAttr("data-val-required");
});
});