关于如何在ASP.NET MVC应用程序中将Json.NET库替换为default serializer,有很多资源,但是,就我而言,我找不到一个资源。如何将其设置为默认反序列化器。
为了说明这一点,这里有一些模板代码:
// how to use Json.NET when deserializing
// incoming arguments?
V
public ActionResult SomeAction ( Foo foo ) {
// this piece of code has lots of resources
// on how to override the default Javascript serializer
return Json(new Bar());
}
如果在控制器操作中反序列化传入参数(例如,从jQuery AJAX调用中),如何告诉我的应用程序使用Json.NET?
$.ajax({
type : 'POST',
data : { foo : 'bar' }
});
我已经尝试通过调整this resource from Rick Strahl来调整MediaTypeFormatters
到我的代码中,但这也不起作用。请注意,我不在WebAPI环境中---但我希望在Controller
中使用一个适用于普通ApiController
的解决方案(尽管调整很少)。
答案 0 :(得分:2)
您需要实现自定义ValueProviderFactory并删除标准的JsonValueProviderFactory。
这里有一些示例代码:http://json.codeplex.com/discussions/347099但是通过阅读评论,我并不是100%确定它会正确处理字典。