用户登录asp.net mvc路由后,在url中显示用户名

时间:2015-04-28 17:51:55

标签: asp.net-mvc asp.net-mvc-3 actionfilterattribute

一旦用户登录并转到主页,它应该默认添加用户名。登录后即使用户尝试去mysite.com,也应该重定向到mysite.com/username

例如:

mysite.com/home - > mysite.com/username/home

所以我的问题是,一旦用户登录,所有页面中的用户名应该是默认的url。即使用户访问主页,也应该扣除用户登录并重定向到主页/用户名。

1 个答案:

答案 0 :(得分:0)

您的MVC应用程序中有默认路由,如下所示:

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", userName = UrlParameter.Optional }
            );

您的默认操作将是:

public ActionResult Index(string username)...

在此操作中,您将检查用户名是否存在。如果不存在重定向到mysite.com/username/home,如果没有重定向到登录主页:

public ActionResult Index(string userName)
        {
            if(string.IsNullOrEmpty(userName))
            {
                return View("Login");
            }

            return Redirect("siteUrlHere" + userName + "/home");
        }