簡體   English   中英

驗證者需要表達注釋時出錯

[英]Error with expressive annotations requiredif validator

這是我的看法

     <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包有可能嗎?

是的,可以使用ExpressiveAnnotations。

@jwaliszko提到了它。

您必須在客戶端這樣設置ea的配置:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM