程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ASP.NET MVC条件验证大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决ASP.NET MVC条件验证?

开发过程中遇到ASP.NET MVC条件验证的问题如何解决?下面主要结合日常开发的经验,给出你关于ASP.NET MVC条件验证的解决方法建议,希望对你解决ASP.NET MVC条件验证有所启发或帮助;

我已经通过处理控制器包含的“ ModelState”字典解决了这一问题。ModelState词典包含所有必须验证的成员。

解决方法如下:

如果您需要基于某个字段实施 (例如,如果A = true,则需要B), (对于对象级别的自定义验证器则不是这样),则可以实现此目的通过处理“ ModelState”,只需从其中删除不需要的验证即可。

在某些班级…

public bool PropertyThatrequiredAnotherFIEldToBeFilled
{
  get;
  set;
}

[required(Errormessage = "*")] 
public String DepentedProperty
{
  get;
  set;
}

…上课继续…

在某些控制器动作中…

if (!PropertyThatrequiredAnotherFIEldToBeFilled)
{
   this.ModelState.Remove("DepentedProperty");
}

这是我的最终实现:我在模型上使用了一个接口,并使用了操作属性来验证实现了上述接口的模型。接口规定了ValIDate(ModelStateDictionary modelState)方法。动作属性仅在IValIDatorSomething上调用ValIDate(modelState)。

我不想使这个答案复杂化,所以我没有提到最终的实现细节(最后,这在生产代码中很重要)。

解决方法

如何使用数据注释对模型进行条件验证?

例如,假设我们有以下模型(人员和高级):

public class Person
{
    [required(Errormessage = "*")]
    public String Name
    {
        get;
        set;
    }

    public bool IsSenior
    {
        get;
        set;
    }

    public Senior Senior
    {
        get;
        set;
    }
}

public class Senior
{
    [required(Errormessage = "*")]//this should be conditional validation,based on the "IsSenior" value
    public String Description
    {
        get;
        set;
    }
}

和以下视图:

<%= Html.EditorFor(m => m.Name)%>
<%= Html.ValidationmessageFor(m => m.Name)%>

<%= Html.checkBoxFor(m => m.IsSenior)%>
<%= Html.ValidationmessageFor(m => m.IsSenior)%>

<%= Html.checkBoxFor(m => m.Senior.Description)%>
<%= Html.ValidationmessageFor(m => m.Senior.Description)%>

我想成为基于“ IsSenior”属性(true-> required)的选择的“
Senior.Description”属性条件必填字段。如何在带有数据注释的ASP.NET MVC 2中实现条件验证?

大佬总结

以上是大佬教程为你收集整理的ASP.NET MVC条件验证全部内容,希望文章能够帮你解决ASP.NET MVC条件验证所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。