2012-01-31 19 views
5

Microsoft SQL Server veritabanımdan bir değer almaya çalışıyorum. Bu bir nillable "bit" dir.JsonResult neden 500 iç sunucu hatası üretiyor?

kod

[HttpGet] 
public JsonResult WishesVisit() 
{ 
    int firmaid = SessionExtensions.GetFirmaId(Session); 
    var firma = db.Firma.Where(x => x.firma_id == firmaid).FirstOrDefault(); 

    if (firma != null) 
    { 
     if (firma.oensker_besog != null) 
     { 
      if ((bool)firma.oensker_besog) 
      { 
       return Json("true"); 
      } 
      else 
      { 
       return Json("false"); 
      } 
     } 
    } 

    return Json("null"); 
} 

almak için Ve kod almak için:

$.getJSON('WishesVisit', function (data) { 
    alert(data); 
}); 

i 500 iç sunucu hatası alıyorum neden?

Hata ayıklayıcı herhangi bir özel durum yakalamaz.

cevap

16

Sorun, büyük olasılıkla ASP.NET MVC varsayılan olarak GET kullanarak JSON isteklerine izin vermediğinden kaynaklanmaktadır. Eğer Json çağrısına bir ikinci parametre olarak JsonRequestBehavior.AllowGet ekleyebilirsiniz:

return Json("true", JsonRequestBehavior.AllowGet); 

Değilse, bir hata mesajı verebilir?

+0

Haklısınız :) – Kenci

+0

Teşekkürler. ASP.NET MVC'nin neden JSON isteklerine izin vermediği hakkında bir fikir. –

+0

@eranotzap MVC, sizi [JSON Hijacking] (http://haacked.com/archive/2009/06/25/json-hijacking.aspx/) olarak bilinen istismardan koruyor. istek bir JSON dizisini döndürür. – OneManBand

İlgili konular