0

這是我的看法錯誤傳神註釋requiredif驗證

 <div id="Domain"> 
      <ul class="formlist"> 
       <li class="width100"> 
        <div class="form-check form-check-inline"> 
         <label class="form-check-label"> 
          @Html.RadioButtonFor(model => model.domain_flag, 1, new { @class = "form-check-input" }) <span>Yes</span> 
         </label> 
        </div> 
        <div class="form-check form-check-inline"> 
         <label class="form-check-label"> 
          @Html.RadioButtonFor(model => model.domain_flag, 0, new { @class = "form-check-input", @checked = "checked" }) <span>No</span> 
         </label> 
        </div> 
       </li> 
      </ul> 

      <ul class="formlist"> 
       <li> 
        <div class="frm-marg-b"> 
         <label class="label"><b>@Html.LabelFor(model => model.domain_renew_date)</b></label> 
         <div class="textbx"> 
          <div class="input-group"> 
           @Html.TextBoxFor(model => model.domain_renew_date, new { @type = "datetime", @class = "form-control" }) 
           @Html.ValidationMessageFor(model => model.domain_renew_date, "", new { @class = "text-danger" }) 
          </div> 
         </div> 
        </div> 
        <div class="frm-marg-b"> 
         <label class="label"><b>@Html.LabelFor(model => model.domain_vendor_id)</b></label> 
         <div class="textbx"> 
          @Html.DropDownListFor(model => model.domain_vendor_id, Model.domain_Vendor, "Please Select") 
          @Html.ValidationMessageFor(model => model.domain_vendor_id, "", new { @class = "text-danger" }) 
         </div> 
        </div> 
       </li> 
       <li> 
        <div class="frm-marg-b"> 
         <label class="label"><b>@Html.LabelFor(model => model.domain_exp_date)</b></label> 
         <div class="textbx"> 
          <div class="input-group"> 
           @Html.TextBoxFor(model => model.domain_exp_date, new { @type = "datetime", @class = "form-control" }) 
           @Html.ValidationMessageFor(model => model.domain_exp_date, "", new { @class = "text-danger" }) 
          </div> 
         </div> 
        </div> 
        <div class="frm-marg-b"> 
         <label class="label"><b>@Html.LabelFor(model => model.domain_amt)</b></label> 
         <div class="textbx"> 
          @Html.EditorFor(model => model.domain_amt, new { htmlAttributes = new { @class = "form-control" } }) 
          @Html.ValidationMessageFor(model => model.domain_amt, "", new { @class = "text-danger" }) 
         </div> 
        </div> 
       </li> 
       <li class="width100"> 
        <div class="frm-marg-b"> 
         <label class="label"><b>@Html.LabelFor(model => model.domain_remarks)</b></label> 
         <div class="textbx3"> 
          @Html.TextAreaFor(model => model.domain_remarks, new { htmlAttributes = new { @class = "form-control", @rows = 2 } }) 
          @Html.ValidationMessageFor(model => model.domain_remarks, "", new { @class = "text-danger" }) 
         </div> 
        </div> 
       </li> 
      </ul> 
     </div> 

我的模型

public int? domain_flag { get; set; } 
    [Display(Name = "Date of Renewal")] 
    [DataType(DataType.Date)] 
    [RequiredIf("domain_flag==1",ErrorMessage ="Enter Renew Date")] 
    public DateTime? domain_renew_date { get; set; } 
    [Display(Name = "Date of Expiry")] 
    [DataType(DataType.Date)] 
    [DisplayFormat(DataFormatString = "{0:mm/dd/yy}", ApplyFormatInEditMode = true)] 
    [RequiredIf("domain_flag==1", ErrorMessage = "Enter Expiry Date")] 
    public DateTime? domain_exp_date { get; set; } 
    [Display(Name = "Vendor")] 
    [RequiredIf("domain_flag==1", ErrorMessage = "Please Select Vendor")] 
    public int? domain_vendor_id { get; set; } 
    [Display(Name = "Amount(Rs.)")] 
    [RequiredIf("domain_flag==1", ErrorMessage = "Enter Amount")] 
    [RegularExpression("^[0-9]+$", ErrorMessage = "Enter Numeric Values")] 
    public decimal? domain_amt { get; set; } 
    [Display(Name = "Comments")]   
    public string domain_remarks { get; set; } 

的Global.asax

     DataAnnotationsModelValidatorProvider.RegisterAdapter(
      typeof(RequiredIfAttribute), typeof(RequiredIfValidator)); 
     DataAnnotationsModelValidatorProvider.RegisterAdapter(
      typeof(AssertThatAttribute), typeof(AssertThatValidator)); 

在這,只要我選擇單選按鈕如果在輸入值之前顯示錯誤消息,則爲必填項。在發佈到服務器之前,應該在點擊提交按鈕時顯示錯誤消息。這可能與表達式註釋Nuget包?

+0

是的,請看看[在本段](https://github.com/jwaliszko/ExpressiveAnnotations#how -to-控制頻的依賴性場驗證)。 – jwaliszko

回答

0

是的,這可以使用ExpressiveAnnotations。

@jwaliszko提到它。

你必須在客戶端設置EA的configuation這樣的:

<script> 
    ea.settings.dependencyTriggers = ''; 
+0

我應該在global.asax中寫這個嗎? –

+0

你必須在你的cshtml或者html文件中寫這個。在腳本部分 – dpfauwadel