C# 如何在Asp.Net应用程序中使用Json.Net检查属性?
在我的web应用程序中,我有一个web服务,它接收带有JSON数据的POST请求。使用Json.Net,我为我的类创建了一个JsonSchema,并检查传入的数据是否有效。代码如下所示: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
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数据创建一个对象,并检查其属性是否有效。当然还有另一个问题,因为内置验证器不支持嵌套对象验证,但这是另一个主题;)现在谢谢你!