gpt4 book ai didi

asp.net-mvc - 将 application/json 绑定(bind)到 asp.net mvc 中的 POCO 对象,序列化异常

转载 作者:行者123 更新时间:2023-12-03 07:42:40 25 4
gpt4 key购买 nike

我正在将 json 从我的 View 中备份到我的 Controller 操作以执行操作。要将正在发送的 json 转换为 POCO,我正在使用此操作过滤器:

public class ObjectFilter : ActionFilterAttribute {
public Type RootType { get; set; }

public override void OnActionExecuting(ActionExecutingContext filterContext) {
IList<ErrorInfo> errors = new List<ErrorInfo>();
try {
object o = new DataContractJsonSerializer(RootType).ReadObject(filterContext.HttpContext.Request.InputStream);
filterContext.ActionParameters["postdata"] = o;
}
catch (SerializationException ex) {
errors.Add(new ErrorInfo(null, ex.Message));
}
finally {
filterContext.ActionParameters["errors"] = errors.AsEnumerable();
}

}

它使用 DataContractJsonSerializer 将 JSON 映射到我的对象。然后我的 Action 被装饰成这样:
[ObjectFilter(RootType = typeof(MyObject))]
public JsonResult updateproduct(MyObject postdata, IEnumerable<ErrorInfo> errors) {
// check if errors has any in the collection!
}

所以推测,这里发生了什么,如果将 JSON 序列化为对象类型时出现问题(如果字符串不能被解析为十进制类型或类似的类型),它会将错误添加到集合中,然后通过这个错误直到 View 。然后它可以检查这个集合是否有错误并向客户端报告。

问题是我似乎无法找出导致问题的字段。理想情况下,我想回到 View 并说“这个领域”有问题。 SerializationException 类似乎没有提供这种灵 active 。

集体 SO hivemind 将如何考虑解决这个问题?

最佳答案

我只会做一个ajax表单帖子。这要容易得多。

http://plugins.jquery.com/project/form

http://malsup.com/jquery/form/

关于asp.net-mvc - 将 application/json 绑定(bind)到 asp.net mvc 中的 POCO 对象,序列化异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/672079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com