c# - 我应该如何在当前 session 中存储动态 css 文件名

标签 c# asp.net-mvc cookies razor

我不知道如何直接询问这个问题,所以我会解释一下我的情况。

我们为客户提供了一个门户,他们可以这样访问该网站:

http://url.com/webporta/ {他们的指南}/

guid 决定为站点加载什么 css 文件:

<link href="@Url.Content(string.Format("~/Content/{0}.css", GetCookieInfo.CssFile))" rel="stylesheet" type="text/css" />

每次他们访问该网站时,我都会读取 css 文件名并重新填充 cookie,以确保我拥有当前值。

这是我从服务调用读取数据库并写出 cookie 的地方:

    var css = client.GetCssFile(id);
    if (string.IsNullOrEmpty(css))
    {
      sb.AppendLine("Setting css to 'Site' default since GetCssFile returned null or empty.");
      css = "Site";
    }

以及调用来编写它的方法:

    var httpCookie4 = HttpContext.Current.Request.Cookies.Get(CookieEnums.CssFile.ToString());
    return httpCookie4 != null ? httpCookie4.Value : "Site";

这一切正常,直到他们使用不同的向导进行访问。他们“重新读取”​​cookie 的唯一方法是使用 CTRL-F5 强制刷新页面。

必须有比这更好的方法,因为我似乎无法让网站在加载时重新读取 cookie,或者至少我不知道如何。

关于处理此问题的更好方法有什么建议吗?

==========编辑#1 ===========

我最初尝试了 session ,但遇到了超时问题。我还建议在这篇文章中使用cookie:How reliant should I be on Session

最佳答案

ErocM 这里是你也可以尝试的东西

你知道如何设置/调整 session 超时吗?如果没有执行以下操作

要更改 session 超时,请将此代码写入您的 web.config 文件 或者您也可以在 global.asax 文件中将其设置为 Session.Timeout = 60; //在 Session.Start() 事件中它将增加 session 过期时间

关于c# - 我应该如何在当前 session 中存储动态 css 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368930/

相关文章:

c# - 如何循环遍历表格行以切换显示样式?

asp.net - 在 cookie 中加密 session ID(或其他身份验证值)是否有用?

c# - 在 C# 的不同项目中使用命名空间

c# - 在 C# 中使用 RSA/ECB/OAEPWithSHA-1AndMGF1Padding 进行加密

c# - 在调用它之前确定 Controller 操作是否被授权

html - ASP.NET MVC 4 捆绑空白 - 格式化输出

c# - 使用 LINQ 的多个搜索参数

asp.net - .NET 中 SignalR 有哪些替代方案?

cookies - Tomcat 7 sessionid cookie 禁用 http-only 和安全

html - CORS withCredentials XHR 预检不在 Firefox 中发布 Cookie