0

我有一个客户对象

 [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>

在添加视图中,我希望所有数据注释属性都能正常工作。它正在做相应的事情。但在我的“搜索”视图中,我不希望这些字段是必需的。其余的数据注释可以保留。

这可能吗?

4

1 回答 1

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");
    });
});
于 2013-03-21T13:55:12.540 回答