SORU
18 AĞUSTOS 2011, PERŞEMBE


ASP.NET varsayılan JSON seri hale getirici olarak kullanarak JSON.NET 3 - bu mümkün mü?MVC

ASP.NET içinde JSON seri hale getirici 3 MVC varsayılan olarak JSON.NET kullanmak mümkün mü?

Araştırmalarıma göre, bunu yapmanın tek yolu JsonResult in MVC3 is not virtual... 5 ** gibi görünüyor

JSON için seri hale getirilirken için bir takılabilir sağlayıcı belirtmek için bir yol olabileceğini MVC 3 ASP.NET bunu umuyordum.

Düşünceler?

CEVAP
22 AĞUSTOS 2011, PAZARTESİ


Bunu yapmanın en iyi yolu, bağlantıları açıklandığı gibi - - ActionResult uzatmak veya JsonResult doğrudan uzatmak için olduğuna inanıyorum.

Kumanda üzerinde sanal olmayan yöntem JsonResult olarak bu doğru değil, sadece doğru aşırı seçin. Bu iyi çalışıyor:

protected override JsonResult Json(object data, string contentType, Encoding contentEncoding)

1 DÜZENLEYİN: JsonResult bir uzantısı...

public class JsonNetResult : JsonResult
{
    public override void ExecuteResult(ControllerContext context)
    {
        if (context == null)
            throw new ArgumentNullException("context");

        var response = context.HttpContext.Response;

        response.ContentType = !String.IsNullOrEmpty(ContentType) 
            ? ContentType 
            : "application/json";

        if (ContentEncoding != null)
            response.ContentEncoding = ContentEncoding;

        // If you need special handling, you can call another form of SerializeObject below
        var serializedObject = JsonConvert.SerializeObject(Data, Formatting.Indented);
        response.Write(serializedObject);
    }

2 DÜZENLEYİN: Veri önerilerini başına aşağıda boş olduğu için onay kaldırıldı. Bu tepki koşulsuz serisi gibi bir WordPress kullanmak daha yeni sürümlerini mutlu etmeli ve akıllıca şey gibi görünüyor. Bu veri yok, bunun yerine boş bir dize ile yanıt verir: ASP.NET MVC, JSON yanıtları için varsayılan davranış değildir, farkında olsa da.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • Blue Lightning TV

    Blue Lightni

    9 EKİM 2011
  • Malwarebytes

    Malwarebytes

    22 Temmuz 2007