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>

ビューの追加で、すべてのdataannotationsプロパティを機能させたい。それに応じてやっています。しかし、私の「検索」ビューでは、フィールドが必須になることを望んでいません。残りのデータ注釈はそのままにしておくことができます。

これは可能ですか?

4

1 に答える 1

0

良い。これが私の場合の処理​​方法です。新しいViewModelを作成する代わりに、すべてのフォームにクラスを追加し、SearchFormJavaScriptを使用して必要な属性をすべて削除しました。

//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 に答える