2

メイン サイトを表示するためのリンクを含むモバイル サイトがあります。

デフォルトでは、モバイル ユーザーがメイン サイトにアクセスすると、モバイル デバイスが検出され、モバイル サイトにリダイレクトされます。

モバイル サイトでユーザーが [メイン サイトを表示] をクリックすると、Cookie が作成され、メイン サイトにリダイレクトされます。メイン サイトは Cookie を検出し、その結果、それらをリダイレクトしません。優先する選択肢として常にメイン サイトを受け入れます。

問題は、メイン サイトで Cookie を検出できることですが、値は常に null であり、有効期限は常に DateTime.MinValue です。

モバイル URL = mobile.mysite.co.uk

メインサイト = mysite.co.uk

これが私のコードです...

モバイルサイトからメインサイトへのリンク

    public ActionResult ViewMainSite()
    {
        string CookieValue = "Always Show the Main Site";
        HttpCookie Cookie = new HttpCookie("ShowMainSite");

        // Set the cookie value and expiry.
        Cookie.Value = CookieValue;
        Cookie.Expires = DateTime.Now.AddYears(1);

        // Add the cookie.
        Response.Cookies.Add(Cookie);

        return Redirect("mainSiteURL");
    }

メイン サイト アクション フィルター - モバイル ユーザーの検出

        /// <summary>
    /// Redirect If Mobile Action filter class
    /// </summary>
    public class RedirectIfMobile : ActionFilterAttribute
    {
        /// <summary>
        /// override the OnactionExecuting Method
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
                // check to see if the have the main site cookie
                var Cookie = filterContext.HttpContext.Response.Cookies.Get("ShowMainSite");

                if (Cookie != null)
                {
                    if (Cookie.Value == null || Cookie.Expires < DateTime.Now)
                    {
                        filterContext.HttpContext.Response.Redirect("MobileURL");
                    }
                }

            base.OnActionExecuting(filterContext);
        }
    }

なぜこれが起こっているのか誰にもわかりますか?

どんな助けも最も感謝しています。

4

2 に答える 2

1

Cookie.Expires = Now.AddYears(1); を試しましたか? または、DateTime が期限切れになる可能性があります = Now.AddYears(1); Cookie.Expires = 期限切れ;

現時点では、あなたの datetime は悪化している/あまり機能していないようです。

于 2012-08-02T10:26:07.800 に答える