我目前正在编写MVC C#应用程序。一切正常。我有一些功能,我使用Ajax调用填充Bootstrap模式框,但新页面被缓存,尽管我努力防止这种情况。
在我的主页面上,我有以下动作处理程序来填充模态框:
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中生成的View有几个单选按钮,具体取决于数据库的内容。我在那里做了一个剃刀声明来获取DB值:
bool valueOfRadButtons = BusinessLogic.Domain.GroupIS.getExistingGroupPermission(
Model.LoginGroupID, myItem.ApplicationPermissionID).LoginPermissionState;
有谁知道我哪里出错了?是Ajax电话吗? Controller中的ActionResult方法?还是内联剃须刀声明?我知道数据得到了正确保存,因为我在数据库中看到了
答案 0 :(得分:0)
您可以指定不应缓存响应,如下所示:
Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
如果您创建自己的属性并使用它here显示操作,则可以更加轻松。