我有一个客户对象
[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>
在添加视图中,我希望所有dataannotations属性都能正常工作。它正在做相应的事情。 但在我的“搜索”视图中,我不希望这些字段是必需的。其余的数据注释可以保留。
这可能吗?
答案 0 :(得分:0)
好。这是我在我的情况下处理它的方式。我没有创建一个新的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");
});
});