首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC空白JsonResult

MVC空白JsonResult
EN

Stack Overflow用户
提问于 2015-01-08 18:24:11
回答 1查看 874关注 0票数 0

我返回一个JsonResult作为一个果园CMS站点(MVC 4)的一部分,它突然停止工作(具体如下)。

下面是我的控制器的一个示例:

代码语言:javascript
复制
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方法与接收响应的客户端之间的数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-08 18:30:04

默认情况下,所有MVC方法都是缓存的。这可能导致在更改/调试周期中出现问题。首先,您可以在开发期间使用下面的装饰器关闭缓存。

代码语言:javascript
复制
[OutputCache(NoStore = true, Duration = 0)] 
public ActionResult MyMethod()

您可能希望使用在web.config中定义的缓存方案包装所有方法。这允许通过一次配置更改来控制缓存,这在开发过程中非常方便。

代码语言:javascript
复制
 <system.web>
    <caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <clear />
          <add varyByParam="*" duration="0" name="MyCachePlan" />          
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>
 </system.web>

并使用下列装饰器:

代码语言:javascript
复制
[OutputCache(CacheProfile = "MyCachePlan")]
public ActionResult MyMethod()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27846994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档