gpt4 book ai didi

asp.net-mvc-4 - ASP.Net MVC4 移动感知输出缓存

转载 作者:行者123 更新时间:2023-12-02 16:27:05 25 4
gpt4 key购买 nike

我正在将应用程序从 MVC3 升级到 MVC4,并注意到一些我认为(希望?)会“正常工作”的东西。

代码:

[OutputCache(Duration = 600, VaryByParam = "none")]
public ActionResult Index()
{
return View();
}

这是 ASP.Net 的教科书缓存示例。每当浏览器访问该页面时,它都会检查缓存以查看是否存在某些内容,如果不存在则生成 View ,然后发送缓存的结果。

这很好用;然而,在使用 MVC4 的移动 View 功能时,我注意到上面的代码不会检查请求是否来自移动设备。因此,如果我在桌面上点击该路线,桌面 View 将显示在我的手机上,直到缓存失效。反之亦然(如果我首先使用手机访问该页面,桌面将看到移动 View )。

是否有一个参数可以让我像我希望的那样工作,或者我正在考虑构建一个客户 OutputCacheProvider?

最佳答案

经过一番挖掘,我找到了解决该问题的方法。

更新了 Controller 操作

[OutputCache(Duration = 600, VaryByCustom = "IsMobile")]
public ActionResult Index()
{
return View();
}

重写 Global.asax 中的 GetVaryByCustomString

public override string GetVaryByCustomString(HttpContext context, string custom)
{
if (custom.ToLowerInvariant() == "ismobile" && context.Request.Browser.IsMobileDevice)
{
return "mobile";
}
return base.GetVaryByCustomString(context, custom);
}

关于asp.net-mvc-4 - ASP.Net MVC4 移动感知输出缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9605085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com