私はASP.NET MVCブログを持っています。クッキーが使用されるクライアントのタイムゾーンで投稿とコメントの日付を表示するために、クッキーにクライアントのタイムゾーンオフセットが含まれています。サーバーは要求を受け取ると、cookieからオフセット値を読み取り、それに応じてすべての日付を変更してからブラウザに送信します。私の質問はどのように日付の調整のためにどこからでもアクセスできるように、リクエストごとにグローバル変数にクッキーを保存する方法です。asp.net mvcのグローバル変数にクッキー値を格納する
0
A
答えて
0
あなたは
session["MyVarName"] = mycookievalue
たびに、あなたがセッションに必要なすべての時間にアクセスすることができますクッキーを使用したくない場合は、セッション変数を使用することができます。
eカスタムモデルバインダーを実装して、セッションの値をモデルにバインドできるように考えることもできます。 (例えば、クラスUserSettingsModel)
1
一般的に、より多くのコントローラとアクションは、外部から提供される値に依存しますが、テスト可能で堅牢なユニットが多くなります。私は、このよう
まずそれを行うその後、タイムゾーン
public class ClientTimeZoneSettings
{
public string TimeZoneName {get; set;} // or whatever
}
の設定を保持しているモデルを作成し、モデルバインダーを作成します。そのモデルバインダーは、Global.asaxの
におけるモデルバインダーは、ボイドのApplication_Start(){ AreaRegistration.RegisterAllAreas()を保護することをクッキー
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"]; }
}
}
}
レジスタから値を抽出するために使用します。
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
ModelBinders.Binders.Add(typeof(ClientTimeZoneSettings), new ClientTimeZoneSettingsModelBinder());
}
メインポイント。大幅に単純なアプローチ:
nugetからMvcFuturesをインストールし、それらの設定を必要とするすべてのあなたの行動では、直接パラメータとして
public ActionResult ShowComments(ClientTimeZoneSettings settings)
{
// use settings
}
UPDATEをClientTimeZoneSettings
を使用することができます。モデルバインディング時に自動的に値のクッキーを検査するCookieValueProviderFactory
が含まれています。これを使用するには、単にValueProviderFactories
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
ValueProviderFactories.Factories.Add(new CookieValueProviderFactory());
}
に追加してから、クッキー名にaccortingあなたのパラメータに名前を付ける
関連する問題
- 1. NodeJS - グローバル変数を格納
- 2. グローバル変数に{{$ time stamp}}変数を格納する方法
- 3. グローバル変数内に値を格納できません
- 4. ASP.NETグローバル変数を格納する - すべてのページからアクセス可能
- 5. テーブルレコード数をグローバル変数vbaに格納する方法msaccess
- 6. 変数にセル値を格納する
- 7. XSLT変数に値を格納する
- 8. グローバル環境内の関数から変数を格納する
- 9. オブジェクトを含むリストをクッキーに格納する方法MVC C#
- 10. オブザーバをグローバル変数に格納して後で使用する
- 11. React - クラス(例:User.username)にグローバル変数を格納する方法
- 12. x86リアルモードでグローバル変数にデータを格納する方法ISR?
- 13. Voicexml入力をグローバル変数に格納する方法
- 14. モデルのコレクションを保持するグローバル変数を格納
- 15. グローバル変数に格納する方法C#
- 16. グローバル変数を宣言し、javascriptを使用して値を格納する
- 17. マイクロソフト試験:MVCアプリケーションでのグローバルな情報を格納する
- 18. クッキーに追加の値を格納するPHP
- 19. kmlモデルオブジェクトを格納するJavaScriptグローバル変数
- 20. Cookie値の一部を取得し、変数に格納する
- 21. Asp.Net MVC複数のリクエスト(スレッド)を処理できるグローバル情報を格納する方法
- 22. asp.net mvc 5の(表示)ローカル変数にユーザー入力値を格納する方法?
- 23. ASP.NETチェックボックスの値をSQL Serverに格納
- 24. JSの変数の値を格納
- 25. フォームデータをasp.netのxmlに格納する方法MVC
- 26. SQL Server変数に複数の値を格納する方法
- 27. ASP.Net MVCに一時的にユーザーデータを格納する
- 28. LINQ結果をグローバル変数に格納するのに最適なタイプ
- 29. div ID値をグローバルに格納する方法
- 30. グローバルに値を格納する方法は?