在ASP.Net MVC4中,JsonResult
该类中使用的默认JavaScript序列化器仍然是JavaScriptSerializer(可以在代码中进行检查)。
我认为您已经将它与ASP.Net Web.API混淆了,其中JSON.Net是默认的JS序列化器,但MVC4不使用它。
因此,您需要将JSON.Net配置为与MVC4配合使用(基本上,您需要创建自己的JsonNetResult
),有关它的文章很多:
如果还希望将JSON.Net用于控制器操作参数,那么在模型绑定期间,则需要编写自己的ValueProviderFactory
实现。
您需要向以下位置注册实现:
ValueProviderFactories.Factories
.Remove(ValueProviderFactories.Factories
.OfType<JsonValueProviderFactory>().Single());
ValueProviderFactories.Factories.Add(new MyJsonValueProviderFactory());
您可以使用内置JsonValueProviderFactory
示例或本文作为示例: ASP.NET MVC 3 –使用Json.Net改进的JsonValueProviderFactory