2012-01-31 86 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

相关问题