代码之家  ›  专栏  ›  技术社区  ›  Ashita Shah

验证程序要求的表达性注释出错

  •  0
  • Ashita Shah  · 技术社区  · 7 年前

    这是我的观点

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

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   jwaliszko    7 年前

    是的,使用ExpressiveAnnotations是可能的。

    @jwaliszko提到了这一点。

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