【问题标题】:MVC OutputCache JsonResult returns htmlMVC OutputCache JsonResult 返回 html
【发布时间】:2015-11-12 20:10:43
【问题描述】:

我有以下控制器:

[HttpPost]
    [OutputCache(Duration=3600, VaryByParam="*", Location=OutputCacheLocation.Server)]
    public JsonResult FreeTextQuery(SearchFiltersQuery filters)
    {
        Trace.TraceInformation("Entering method SearchController.FreeTextQuery");

        SearchResults aResults = new SearchResults();

        if (ModelState.IsValid)
        {

            try
            {
                ClaimsPrincipal user = User as ClaimsPrincipal;
                aResults = _objectRepository.GetFullTextResults(filters, user);
            }
            catch (Exception ex)
            {
                if (!(@Url == null))
                {
                    return Json(new { redirectUrl = @Url.Action("ShowError", "Error", new { message = ex.Message }), isRedirect = true });
                }
            }
        }

        Trace.TraceInformation("Exiting method SearchController.FreeTextQuery");

        return Json(aResults);
    }

由下面的ajax函数调用

function GetResults(aFilters) {
    var aEndPointUrl = "/Search/FreeTextQuery";

    var jSonString = JSON.stringify(aFilters);
    $.ajax({
        type: 'POST',
        url: aEndPointUrl,
        traditional: true,
        contentType: 'application/json; charset=utf-8',
        data: jSonString,
        success: function (data) {
            // omitted for brevity

        },
        error: function (xhr, ajaxOptions, error) {
            window.location.href = "/Error/ShowError?message=" + encodeURIComponent("Onbekende fout bij het zoeken.");
        }
    });

此代码在控制器上没有 OutputCache 属性的情况下可以正常工作。有了它,它总是会遇到 ajax 调用的错误函数,我看到响应不是 JSON,而是 HTML 内容(因此错误是解析器错误)。 输出缓存可能出了什么问题,如何让它正常工作?我尝试了许多提供 VaryByParams 的方法,但结果都一样。

【问题讨论】:

    标签: ajax caching model-view-controller


    【解决方案1】:

    这篇文章揭示了答案。问题是将跟踪输出到页面:page outputcache not working with trace

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-09
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多