Sadece bu cevabı ekliyorum çünkü System.Web.Mvc.Controller sınıfını geçersiz kılmayan bir alternatif çözüm kullanıyorum. System.Web.Mvc.Controller sınıfına aşağıdaki uzantı yöntemlerini ekleyin. Bu çözümün tek yararı, kodun oluşturulmuş Denetleyici sınıflarının temel sınıfını değiştirmenizi gerektirmemesidir. Aksi halde, kabul edilen cevaba işlevsel olarak eşdeğerdir. Benim uygulamada
public static JsonResult ToJsonResult(this Controller controller,
object target,
string contentType,
Encoding contentEncoding,
JsonRequestBehavior behavior)
{
if (target != null)
{
if (target.GetType().HasAttribute<DataContractAttribute>())
{
return new DataContractJsonResult() { ContentType = contentType, ContentEncoding = contentEncoding, JsonRequestBehavior = behavior, Data = target };
}
}
return new JsonResult() { ContentType = contentType, ContentEncoding = contentEncoding, JsonRequestBehavior = behavior, Data = target };
}
public static JsonResult ToJsonResult(this Controller controller, object target)
{
return controller.ToJsonResult(target, null, null, JsonRequestBehavior.DenyGet);
}
public static JsonResult ToJsonResult(this Controller controller, object target, string contentType)
{
return controller.ToJsonResult(target, contentType, null, JsonRequestBehavior.DenyGet);
}
public static JsonResult ToJsonResult(this Controller controller, object target, string contentType, Encoding contentEncoding)
{
return controller.ToJsonResult(target, contentType, contentEncoding, JsonRequestBehavior.DenyGet);
}
public static JsonResult ToJsonResult(this Controller controller, object target, string contentType, JsonRequestBehavior behavior)
{
return controller.ToJsonResult(target, contentType, null, behavior);
}
, varsayılan denetleyici geçersiz kılmak ve tipi DataContract özeliği varsa JSON.NET serileştirici kullanılmalıdır. Bu işleve dahil edilmeyen DataContractJsonResult sınıfında kapsüllenmiş, ancak bu soruya kabul edilen cevapta sınıftan sonra modellenmiştir.
ilgili: http://stackoverflow.com/questions/7109967/using-json-net-as-default-json-serializer-in-asp-net-mvc-3-is-it-possible –
Bunu sordum Bağlantılı yinelemeden 2 hafta önce soru ... Bu diğer soruyu çoğaltır! – Tim