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

Asp.net mvc 在用户登录asp.net mvc路由后在url中显示用户名,asp.net-mvc,asp.net-mvc-3,actionfilterattribute,Asp.net Mvc,Asp.net Mvc 3,Actionfilterattribute,一旦用户登录并转到主页,默认情况下应添加用户名。登录后,即使用户尝试转到mysite.com,也应重定向到mysite.com/username 例: mysite.com/home->mysite.com/username/home 所以我的问题是,一旦用户登录所有页面,url中的用户名应该是默认的。即使用户进入主页,也应扣除已登录的用户并重定向到主页/用户名。您的MVC应用程序中有如下默认路由: routes.MapRoute( name: "Default"

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

例:

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


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

您的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");
        }

那么问题是什么,你试图解决什么?