C# 如何在Asp.Net应用程序中使用Json.Net检查属性?

C# 如何在Asp.Net应用程序中使用Json.Net检查属性?,c#,asp.net,json,validation,json.net,C#,Asp.net,Json,Validation,Json.net,在我的web应用程序中,我有一个web服务,它接收带有JSON数据的POST请求。使用Json.Net,我为我的类创建了一个JsonSchema,并检查传入的数据是否有效。代码如下所示: public bool IsValidRequest(string strInput, out String errText) { List<String> exceptions = new List<String>(); errText = ""; strInp

在我的web应用程序中,我有一个web服务,它接收带有JSON数据的POST请求。使用Json.Net,我为我的类创建了一个JsonSchema,并检查传入的数据是否有效。代码如下所示:

public bool IsValidRequest(string strInput, out String errText)
{
    List<String> exceptions = new List<String>();
    errText = "";
    strInput = strInput.Trim();

    JsonSchema schema = generator.Generate(typeof(MyRequestType));            

    using (StringReader sr = new StringReader(strInput))
    {
        using (JsonValidatingReader reader =  new JsonValidatingReader(new JsonTextReader(sr)))
        {
            reader.Schema = schema;
            reader.ValidationEventHandler += (sender, args) => { exceptions.Add(args.Exception.Message); };

            while (reader.Read()) { }

            if (exceptions.Count > 0)
            {
                for (int i = 0; i < exceptions.Count; i++)
                {
                    errText += exceptions[i];
                    if (i < exceptions.Count - 1)
                        errText += "\r\n";
                }
                return false;
            }
        }
    }

    return true;
}
public class MyRequestType
{
    [Required]
    [Range(1, int.MaxValue)]
    public int ID;  

    [Required]
    [StringLength(10)]
    public String Name;
}

ValidatingReader检查所需的属性是否存在,是否具有正确的数据类型,但不检查给定的范围或字符串长度是否正确。有没有办法使用DataAnnotations实现这一点,或者我必须自己检查这些属性?

在创建对象后,ASP.NET的对象验证使用DataAnnotations。它将通过另一轮验证来实施。在ASP.NETMVC中,检查
是否(Model.IsValid){}
是一个问题,据我所知,我必须从收到的Json数据创建一个对象,并检查其属性是否有效。当然还有另一个问题,因为内置验证器不支持嵌套对象验证,但这是另一个主题;)现在谢谢你!创建对象后,ASP.NET的对象验证将使用DataAnnotation。它将通过另一轮验证来实施。在ASP.NETMVC中,检查
是否(Model.IsValid){}
是一个问题,据我所知,我必须从收到的Json数据创建一个对象,并检查其属性是否有效。当然还有另一个问题,因为内置验证器不支持嵌套对象验证,但这是另一个主题;)现在谢谢你!