C# Ajax调用被缓存,尽管有适当的参数

C# Ajax调用被缓存,尽管有适当的参数,c#,jquery,ajax,asp.net-mvc,razor,C#,Jquery,Ajax,Asp.net Mvc,Razor,我目前正在编写一个MVC应用程序。一切正常。我有一些功能,我使用Ajax调用填充引导模式框,但是新页面会被缓存,尽管我努力阻止了这一点 在我的主页上,我有以下actionhandler来填充模式框: function setExtraPermsOrAtts(appID){ $.ajax({ cache:false, url: "/Group/_modifyAppPermissionsOfGroup?appID=" + appID

我目前正在编写一个MVC应用程序。一切正常。我有一些功能,我使用Ajax调用填充引导模式框,但是新页面会被缓存,尽管我努力阻止了这一点

在我的主页上,我有以下actionhandler来填充模式框:

function setExtraPermsOrAtts(appID){
    $.ajax({
        cache:false,
        url: "/Group/_modifyAppPermissionsOfGroup?appID=" + appID            
    }).done(function (result) {
        $("#addApplicationBody").html(result);
        $('#modal-add-application').modal('show');
    });
}
这将通过以下方法捕获:

    public ActionResult _modifyAppPermissionsOfGroup(int? appID = 0)
    {
        if (appID != 0)
        {
            ViewBag.selectedAppID = appID;
            Session["selectedGroupAppID"] = appID;
            ViewBag.modifyPermsLater = true;
        }
        Group group = (Group)Session["currentGroup"];
        return View(group);
    }
另一件可能相关的事情是它“出错”的地方。Modalbox中的结果视图有几个单选按钮,具体取决于数据库的内容。在这里,我使用razor语句来获取DB值:

bool valueOfRadButtons = BusinessLogic.Domain.GroupIS.getExistingGroupPermission( 
                 Model.LoginGroupID, myItem.ApplicationPermissionID).LoginPermissionState;

有人知道我哪里出错了吗?是Ajax调用吗?控制器中的ActionResult方法?还是内联razor语句?我知道数据已正确保存,因为我看到在DB中,您可以指定响应不应像这样缓存:

Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();

如果您创建自己的属性并使用它来修饰操作(如图所示),则会更简单。

缓存:false
在URL中添加一个伪时间戳参数,以“确保”请求是唯一的(且未缓存)。您可以将其更改为
post
(从不缓存),或者更好地将缓存属性添加到
\u modifyAppPermissionsOfGroup
服务器方法以停止任何缓存。e、 g.
[OutputCacheAttribute(VaryByParam=“*”,Duration=0,NoStore=true)]
我在ActionResult方法中添加了OutputCacheAttribute注释,但这不起作用。valueOfRadButtons变量仍被缓存。