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

  • Boiler Room

    Boiler Room

    10 Mayıs 2012
  • Chilla Frilla™

    Chilla Frill

    7 Aralık 2006
  • Mega64

    Mega64

    24 ŞUBAT 2006