【问题标题】:MVC foolproof validations with mvc4使用 mvc4 进行 MVC 万无一失的验证
【发布时间】:2014-11-13 03:37:44
【问题描述】:

我尝试使用Requiredif 和RequiredifTrue,但两者都不起作用。下面是我的代码。当我将 IsmedicalInsurance 的值设置为 true/false 时,其他两个都不起作用。

[Required(ErrorMessage="Please update about medical insurance")]
    public bool? IsMedicalInsurance { set; get; } 

[RequiredIf("IsMedicalInsurance", true, ErrorMessage = "Enter Primary Insuracne Name")]
    public string PrimaryInsurance { set; get; }

[RequiredIfTrue("IsMedicalInsurance", ErrorMessage = "Enter Id number")]
     public string IDnumber { set; get; }

查看代码。

<label class="radio-inline">
@Html.RadioButtonFor(m => m.IsMedicalInsurance, true, new { id="rdhaveinsur"}) Yes  
</label>
<label class="radio-inline">
  @Html.RadioButtonFor(m => m.IsMedicalInsurance, false, new { id="rdhaveno"})No
  @Html.ValidationMessageFor(m => m.IsMedicalInsurance)
 </label>


<div class="col-sm-7">
  @Html.TextBoxFor(m => m.PrimaryInsurance, new { @class = "form-control", id =  "txtInsurance" })
@Html.ValidationMessageFor(m => m.PrimaryInsurance)
</div>

<div class="col-sm-7">
 @Html.TextBoxFor(m => m.IDnumber, new { @class = "form-control", id = "txtIdNumber" })
 @Html.ValidationMessageFor(m => m.IDnumber)
 </div>

【问题讨论】:

  • 能否请您发布您的查看代码?
  • 可能的问题是使用单选按钮和/或您没有null 值的单选按钮。尝试使用 @EditorFor(m =&gt; m.IsMedicalInsurance) 而不是单选按钮(它会呈现一个下拉菜单,其中包含 3 个选项“未设置”、“真”和“假”)

标签: asp.net-mvc-4 foolproof-validation


【解决方案1】:

为什么你需要让 IsMedicalInsurance 可以为空,因为该值要么为真,要么为假,不应该为空?我已经尝试了您的代码,它正在使用 IsMedicalInsurance 更改为 bool 而不是 bool

更新

您是否加载了以下脚本?

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/Scripts/mvcfoolproof.unobtrusive.min.js")

【讨论】:

  • 如果我删除 nullable 然后如果用户没有选择医疗保险单选按钮,那么绑定的 IsmedicalInsurance 属性不会给出“请更新医疗保险”的错误。我也尝试过删除 bool?,但其他字段仍然不会被验证。
  • 我在测试中使用了复选框。然后将尝试使用单选按钮
  • @MuhammadDanish,服务器端验证是否在您身边工作?我遇到客户端验证不起作用的问题,但是,在添加 mvcfoolproof.unobtrusive.min.js 后,它按预期工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2014-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多