我返回一个JsonResult作为一个果园CMS站点(MVC 4)的一部分,它突然停止工作(具体如下)。
下面是我的控制器的一个示例:
public JsonResult GetStartDate()
{
//a previous version of this question was different here
var startDate = _Settings.DateOpen.GetValueOrDefault(DateTime.MaxValue);
if (startDate < DateTime.Now)
startDate = DateTime.Now;
var start = new
{
year = startDate.Time.Year,
month = (startDate.Time.Month - 1)
};
return Json(start, JsonRequestBehavior.AllowGet);
}它应该是返回实际数据。我已经验证了操作正在被击中,并且在传递到Json方法之前,"start“包含正确的数据。
如果我直接导航到URL,就会得到一个空白的白屏幕。
检查AJAX请求的结果表明调用失败,响应体为空字符串,状态为"parsererror“,实际的错误抛出为"SyntaxError:意外输入结束”。
POST请求工作出于某种原因,此问题仅适用于GET。
这个问题与所有的JSON获取有关,而不仅仅是任何特定的方法。
什么会影响Json方法与接收响应的客户端之间的数据?
发布于 2015-01-08 18:30:04
默认情况下,所有MVC方法都是缓存的。这可能导致在更改/调试周期中出现问题。首先,您可以在开发期间使用下面的装饰器关闭缓存。
[OutputCache(NoStore = true, Duration = 0)]
public ActionResult MyMethod()您可能希望使用在web.config中定义的缓存方案包装所有方法。这允许通过一次配置更改来控制缓存,这在开发过程中非常方便。
<system.web>
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<clear />
<add varyByParam="*" duration="0" name="MyCachePlan" />
</outputCacheProfiles>
</outputCacheSettings>
</caching>
</system.web>并使用下列装饰器:
[OutputCache(CacheProfile = "MyCachePlan")]
public ActionResult MyMethod()https://stackoverflow.com/questions/27846994
复制相似问题