2012-01-31 84 views
5

我想從我的Microsoft SQL Server數據庫檢索一個值。這是一個可空的「位」。爲什麼JsonResult會產生500個內部服務器錯誤?

的代碼來檢索

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

和代碼檢索:

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

爲什麼我得到一個500內部服務器錯誤?

調試器沒有發現任何異常。

回答

16

問題很可能是因爲ASP.NET MVC默認情況下不允許使用GET的JSON請求。您可以作爲第二個參數添加到JsonRequestBehavior.AllowGet您的JSON電話:

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

如果沒有,你可以提供一個錯誤信息?

+0

你是對的:) – Kenci 2012-02-01 07:52:00

+0

謝謝。任何想法爲什麼ASP.NET MVC不允許JSON請求。 – 2015-12-23 14:57:57

+0

@eranotzap MVC保護您免受被稱爲[JSON劫持](http://haacked.com/archive/2009/06/25/json-hijacking.aspx/)的攻擊,其中您可能會暴露敏感數據(如果GET請求返回一個JSON數組。 – OneManBand 2016-06-03 15:14:30

相關問題