Asp.net MVC在强类型视图中重写数据注释



我有一个客户对象

 [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");
    });
});

相关内容

  • 没有找到相关文章

最新更新