0

私は MVC テクノロジに不慣れで、MVC 4 アプリケーションを使用しており、選択した入力 (月と年) の検証を表示しようとしています。input type="text" の検証を行いましたが、うまくいきました。オプションの選択についてサポートが必要です。これについて助けてください。

景色:

        <li>
            <div class="requiredField">@Html.LabelFor(m => m.AccountNumber)<span>* </span>
            </div>
            @Html.TextBoxFor(m => m.AccountNumber, new {@class ="requiredTextBox" })
            <div class="swipeLink">
                @Html.ActionLink("Swipe", "Swipe", "Transaction", new { @class = "swipePopupLink" })
            </div>
        </li>
        <li>
            <div class="requiredField">@Html.Label("Expiration Date")<span>* </span></div>  
            <div class="ExpirationMonthYear">
                @Html.DropDownList("ExpirationMonth", new SelectList(Model.ExpirationMonth, "Value", "Text", 0), new { @class = "requiredTextBox" })
                @Html.DropDownList("ExpirationYear", new SelectList(Model.ExpirationYear, "Value", "Text", 0), new { @class = "requiredTextBox" })
            </div>
        </li>
@Html.ValidationSummary()

           <script src='@Url.Content("~/Scripts/jquery-1.6.2.js")' type="text/javascript">
           </script>
           <script src='@Url.Content("~/Scripts/jquery.validate.min.js")' 
           type="text/javascript"></script>
           <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" 
           type="text/javascript"></script>
           <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"  
           type="text/javascript"></script>

モデル ビュー:

    [Required]
    [Display(Name = "Account Number")]
    public string AccountNumber { get; set; }

    [Required]        
    [Display(Name = "Expiration Date")]
    public IEnumerable<SelectListItem> ExpirationMonth { get; set; }

    [Required]
    public IEnumerable<SelectListItem> ExpirationYear { get; set; }

あなたのサポートに感謝します

4

1 に答える 1

0

ドロップダウンの場合、検証を確認するためにもう 1 つのプロパティにバインドする必要があります

The ModelView 



 [Required]
        [Display(Name = "Account Number")]
        public string AccountNumber { get; set; }


        [Display(Name = "Expiration Date")]
        public IEnumerable<SelectListItem> ExpirationMonth { get; set; }


        public IEnumerable<SelectListItem> ExpirationYear { get; set; }

        //New property 
        [RegularExpression(@"^[^0]*$", ErrorMessage = "Select Month.")]
        public int ExpMonth{get;set;}

        [RegularExpression(@"^[^0]*$", ErrorMessage = "Select Year.")]
        public int ExpYear {get;set;}

景色

<li>
        <div class="requiredField">@Html.LabelFor(m => m.AccountNumber)<span>* </span>
        </div>
        @Html.TextBoxFor(m => m.AccountNumber, new {@class ="requiredTextBox" })
        <div class="swipeLink">
            @Html.ActionLink("Swipe", "Swipe", "Transaction", new { @class = "swipePopupLink" })
        </div>
    </li>
    <li>
        <div class="requiredField">@Html.Label("Expiration Date")<span>* </span></div>  
        <div class="ExpirationMonthYear">
            @Html.DropDownListFor(model=>model.ExpMonth, new SelectList(Model.ExpirationMonth, "Value", "Text", 0), new { @class = "requiredTextBox" })
            @Html.DropDownListFor(model=>model.ExpYear, new SelectList(Model.ExpirationYear, "Value", "Text", 0), new { @class = "requiredTextBox" })
        </div>
    </li>

注:上記の例では、正しくない場合はintデータ型を使用しています。状況に応じて異なるものにしてから、検証を適用してください。

于 2012-10-18T07:32:53.180 に答える