2012-01-31 16 views
5

Próbuję pobrać wartość z mojej bazy danych Microsoft SQL Server. Jest to "bit" nullable.Dlaczego JsonResult generuje 500 błędów wewnętrznego serwera?

Kod odzyskać

[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"); 
} 

I kod do pobrania:

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

Dlaczego otrzymuję błąd 500 serwera wewnętrznego?

Debugger nie przechwytuje żadnego wyjątku.

Odpowiedz

16

Problem jest najprawdopodobniej dlatego, że ASP.NET MVC domyślnie nie zezwala na żądania JSON przy użyciu GET. Możesz dodać JsonRequestBehavior.AllowGet jako drugi parametr do wywołania Json:

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

Jeśli nie, można podać komunikat o błędzie?

+0

Miałeś rację :) – Kenci

+0

dzięki. Każdy pomysł, dlaczego ASP.NET MVC nie pozwala na żądania JSON. –

+0

@eranotzap MVC chroni Cię przed exploita znanym jako [JSON Hijacking] (http://haacked.com/archive/2009/06/25/json-hijacking.aspx/), w którym możesz potencjalnie ujawnić poufne dane, jeśli GET request zwraca tablicę JSON. – OneManBand

Powiązane problemy