繁体   English   中英

在Asp.Net MVC 3中重定向到移动页面

[英]Redirecting to mobile page in Asp.Net MVC 3

我正在尝试对Asp.Net MVC应用程序使用其他登录页面,该页面已修改为适合移动设备(主要是iPhone / Android)。 我基本上只需要修改登录视图,因为实际内容在应用程序的特定部分中,因此我并不是要制作整个网站的移动版本。

因此,我尝试遵循以下步骤: http : //www.asp.net/learn/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-application

但是我对身份验证不够了解,无法确切地知道如何为移动版本执行登录操作方法。 我觉得我可能缺少特定的移动发布操作,而且我不知道如何处理重定向中传递的网址。 到目前为止,这是我得到的:

public ActionResult LogOn()
        {
            string returnUrl = Request.QueryString["ReturnUrl"];
            if ((returnUrl != null) && returnUrl.StartsWith("/Mobile/",
                                       StringComparison.OrdinalIgnoreCase))
            {
                return RedirectToAction("LogOnMobile", "Account",
                                        new { ReturnUrl = returnUrl });
            }
            return View();
        }

        public ActionResult LogOnMobile(string returnurl)
        {
            return View();

        }



        [HttpPost]
        public ActionResult LogOn(LogOnModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                if (MembershipService.ValidateUser(model.UserName, model.Password))
                {
                    FormsService.SignIn(model.UserName, model.RememberMe);
                    if (Url.IsLocalUrl(returnUrl))
                    {
                        return Redirect(returnUrl);
                    }
                    else
                    {
                        return RedirectToAction("Index", "Home");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "The user name or password provided is incorrect.");
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }

这是行不通的。 我进入了移动登录页面(或者实际上到目前为止,我只是通过注释掉if子句来尝试使用该操作方法),但是当我尝试登录时,我只是再次进入了同一页面,但是奇怪的是没有场...

我需要做什么才能使它正常工作?

您是否将帐户控制器保留在移动区域中? 更好的做法是使用移动区域保留所有移动站点内容,并将授权重定向到AccountController。

    public ActionResult Login()
    {
        string returnUrl = Request.QueryString["ReturnUrl"];
        if ((returnUrl != null) && returnUrl.StartsWith("/Mobile/", StringComparison.OrdinalIgnoreCase))
            return RedirectToAction("Login", "Account", new { Area = "Mobile", ReturnUrl = returnUrl });

        return ContextDependentView();
    }

我没有在实际检查任何地方的地方看到它是否是要重定向的移动设备:

if (Request.Browser.IsMobileDevice){ }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM