1

我有以下控制器操作:

public ActionResult Details(string pk)
        {
            IEnumerable<ContentDetail> model = null;
            try
            {
                model = _content.Details(pk);
                if (model.Count() > 0)
                {
                    return PartialView(getView(pk) + "Details", model);
                }
            }
            catch (Exception e)
            {
                log(e);
            }
            return Content("No records found");
        }

我用以下例程调用它:

$.ajax({
        cache: false,
        url: "/Administration/" + table + "s/Details",
        data: { pk: partitionKey },
        dataType: 'html',
        success: function (responseText) {
            $('#detailData').html(responseText);
            $(".updatable")
                .change(function (e) {
                    var type = $(this).attr('id').split('_')[0];
                    updateField(table, $(this), type);
                });
            $('.dialogLink')
                .click(function () {
                    dialogClick(this);
                    return false;
                });
        },
        error: function (ajaxContext) {
            ajaxOnFailure(ajaxContext)
        }
    });

我注意到的是,有时当我在控制器操作的第一行放置一个断点时,它似乎并没有在断点处停止。结果是否可能被 MVC 缓存,我如何在调试时阻止这种情况发生?

4

2 回答 2

0

加载提琴手并查看请求是否甚至从浏览器返回。理想情况下,您会希望我通过此处提到的众多方法之一不写出缓存标头 禁用整个 ASP.NET 网站的浏览器缓存

于 2012-04-29T17:26:51.487 回答
0

检查OutputCache在控制器本身上设置的任何变化,或者,如果存在,所有控制器都可以继承的基本控制器。

我还注意到 IE 喜欢缓存东西,并发现缓解这种情况的唯一方法是对开发人员窗口执行操作并清除缓存(或ctrl++ shiftdel

尝试添加cache:false到您的.ajax调用中,看看是否有任何影响(jQuery 将附加一个时间戳变量,使每个调用都是唯一的)。没关系,只是注意到你有它。一定要迟到了——当我想念这样的事情时,一定要签字。

于 2012-04-29T04:35:07.533 回答