我有一個ASP.NET MVC博客,爲了顯示客戶端時區中的帖子和評論日期,使用了cookie,該cookie包含客戶端時區偏移量。當服務器收到一個請求時,它會從cookie中讀取偏移值,並在發送給瀏覽器之前相應地更改所有日期。我的問題是如何將cookie存儲在每個請求的全局變量中,以便可以通過任何地方進行日期調整。在ASP.NET中存儲cookie值在全局變量mvc
0
A
回答
0
您可以使用一個會話變量,如果你不想使用cookie每次
session["MyVarName"] = mycookievalue
,那麼你可以每天所需要的時間訪問會話。
您還可以考慮實施e自定義模型綁定器,以便您可以將會話的值綁定到模型。 (例如一個類UserSettingsModel)
1
通常,更多的控制器和動作取決於從外部提供的值,他們變得越多,可測試的單元越多。我會做這樣
首先,創建一個時區的
public class ClientTimeZoneSettings
{
public string TimeZoneName {get; set;} // or whatever
}
持有設置,然後模型,創建模型綁定。該模型粘合劑將用來從餅乾
public class ClientTimeZoneSettingsModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
if (controllerContext.RequestContext.HttpContext.Request.Cookies.AllKeys.Contains("timeZoneName"))
{
bindingContext.Model = new ClientTimeZoneSettings {TimeZoneName = controllerContext.RequestContext.HttpContext.Request.Cookies["timeZoneName"]; }
}
}
}
提取值註冊該模型粘合劑Global.asax中
保護無效的Application_Start() { AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
ModelBinders.Binders.Add(typeof(ClientTimeZoneSettings), new ClientTimeZoneSettingsModelBinder());
}
和主要點。在需要這些設置你的所有行動,你可以直接使用ClientTimeZoneSettings
作爲參數
public ActionResult ShowComments(ClientTimeZoneSettings settings)
{
// use settings
}
UPDATE:值得注意的是更簡單的方法:
從安裝的NuGet MvcFutures。它包含CookieValueProviderFactory
,它會在模型綁定時自動檢查cookie的值。要使用它,只需添加到ValueProviderFactories
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
ValueProviderFactories.Factories.Add(new CookieValueProviderFactory());
}
然後命名您的參數accorting到cookie的名稱
相關問題
- 1. asp.net mvc 3全局變量沒有cookie
- 2. 在ASP.NET MVC中存儲全局對象
- 3. ASP.NET MVC C#全局變量
- 4. ASP.NET MVC全局變量
- 5. 如何在ASP.NET中存儲,更新全局變量
- 6. GCC全局變量存儲
- 7. 在全局變量無法儲值JS
- 8. 如何在ajax調用中存儲全局變量的值?
- 9. 如何在jQuery中存儲全局值(不一定是全局變量)?
- 10. 如何在asp.net MVC 5中創建全局常量變量
- 11. ASP.Net MVC 5 - Cookie不存儲
- 12. 存儲在內存中的DLL的全局變量在哪裏?
- 13. 靜態存儲在內存中的全局變量在哪裏?
- 14. 在asp.net中創建全局變量C#
- 15. 如何在ASP.NET MVC中聲明一個全局變量頁面
- 16. 其中是存儲在內存段中的全局變量和靜態變量?
- 17. 在變量中存儲值
- 18. 在PHP中,全局聲明的變量存儲在哪裏?
- 19. 在php中存儲ONE全局值
- 20. 設置ESP8266中存儲在SPIFFS中變量的全局對象
- 21. asp.net cookie不存儲的值
- 22. .NET - 將URL存儲爲全局變量
- 23. 全局變量(存儲器綁定)
- 24. Rails,js變量的全局存儲
- 25. 的extern存儲類和全局變量
- 26. ASP.NET全局類|全局變量
- 27. ASP.NET MVC設置永久全局訪問變量的值
- 28. 全局變量如何在局部變量中以不同方式存儲在內存中
- 29. 檢索Cookie值的一部分並存儲在變量中
- 30. 如何在JQuery中存儲全局變量?