2012-03-25 3 views
1

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

www.appname.com/username/

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

+0

Какие символы разрешены в имени пользователя? Вы разрешаете пользователю регистрироваться на вашем сайте с именем пользователя = Главная/Индекс, например? –

+0

@ Darin Dimitrov, имена пользователей не будут иметь специальных символов. Я строю его в основном для учебных целей, поэтому ничего сложного, просто хочу, чтобы пользователь входил в систему и просматривал собственный URL-адрес, который можно было бы использовать другим людям. – mishap

ответ

1

Добавить этот маршрут к вашим маршрутам в 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

Смежные вопросы