MVC MapRoute с именем пользователя - PullRequest
1 голос
/ 25 марта 2012

Я создаю небольшое приложение MVC. После того, как пользователь войдет в систему, я хочу, чтобы его / ее маршрут отображал:

www.appname.com/username/

Внизу, конечно, одно и то же действие вызывается для каждого пользователя, например, /home/index. Как мне написать свой MapRoute для достижения этого и какой другой код (атрибуты) я должен использовать?

1 Ответ

1 голос
/ 25 марта 2012

Добавьте этот маршрут к вашим маршрутам в global.asax.cs файле

  routes.MapRoute(
            "RouteName", // Route name
            "FixedUrlSegment/{UserName}/{Controller}/{action}/{id}/", // URL with parameters
            new { controller = "ControllerName", 
                  action = "ActionName",
                  id=UrlParameter.Optional
                }, 
        );

Я думаю, что вы должны использовать фиксированный сегмент в качестве начальной точки для вашего маршрута, чтобы отличить его от маршрута по умолчанию или других маршрутов

конечно, в методе входа в систему вы должны перенаправить на этот новый маршрут

return RedirectToRoutePermanent("RouteName", new { username = "UserName",
                                                   action = "Index", 
                                                   controller = "Home",
                                                   id="userId"
                                                 }
                                );
// remember id is not required for that route as mentioned in global file

этот пример перенаправит вашу страницу на URL

www.appname.com/FixedUrlSegment/loggedusername/home/index/loggeduserid

...