2012-10-18 133 views
0

我是新的MVC技術,我有一個MVC 4應用程序,並試圖顯示選擇輸入(月和年)的驗證。我做了驗證輸入類型=「文本」它對我工作很好。我需要幫助選擇一個選項。請幫忙嗎?選擇選項值MVC4驗證

的觀點:

 <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; } 

提前欣賞的支持

回答

0

對於下拉,你需要多一個屬性綁定到檢查您的驗證

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數據類型,如果它不正確,那麼請把它作爲不同的按照您的情況,然後申請驗證。

+0

你能告訴我什麼是錯誤嗎? – Shivkumar

+0

感謝您的信息。我在那之後添加了代碼我得到這個錯誤 - >已經包含「ExpirationMonth」的定義,並且已經包含「ExpirationYear」的定義。你能幫忙嗎? 請找到以下路徑:https://www.dropbox.com/s/lu1j40er8el3jz8/error.png – ssiva

+0

我已修改它,請檢查新的更改並讓我知道... – Shivkumar