2010-06-30 3 views
0

Как мне настроить маршрут моего приложения на mydomainname/имя пользователя/контроллер.Повторно использовать параметр маршрута по URL-адресу

Я работаю над веб-приложением asp.net mvc, которое позволяет пользователю принадлежать к нескольким учетным записям. то есть. В приложении каждая учетная запись имеет своих пользователей, и каждый пользователь в одной учетной записи также может быть пользователем в другой учетной записи. Что мне нужно, когда пользователь хочет войти в систему, они указывают учетную запись, которую они хотят зарегистрировать, например: domainname.com/accountname/login.

Можете ли вы это сделать, но где у меня проблема - как сохранить параметр маршрута accountname по другим маршрутам? Я хочу сказать, что это видно на url. Пока я использую cookie для хранения и получения параметра accountname, но мне нужен способ сделать его видимым на url в каждом запросе (без необходимости вручную маршрутизировать его по ссылкам) до тех пор, пока пользователь не выберет.

Am с помощью ASP.NET MVC 2

Редактировать: Добавлено мой маршрут кодовая

 public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute("", "", new { controller = "Home", action = "index" }); 

     routes.MapRoute("", "dashboard", new { controller = "account", action = "dashboard" }); 

     routes.MapRoute("", "contacts", new { controller = "contact", action = "index" }); 

     routes.MapRoute("", "groups", new { controller = "group", action = "index" }); 

     routes.MapRoute("", "sms", new { controller = "sms", action = "index" }); 

     routes.MapRoute("", "users", new { controller = "user", action = "index" }); 

     routes.MapRoute("", "login", new { controller = "Home", action = "login", accountUrlName = UrlParameter.Optional }); 

     routes.MapRoute("", "{accountUrlName}/login", new { controller = "Home", action = "login" }); 

     routes.MapRoute("", "register", new { controller = "home", action = "register" }); 

     routes.MapRoute("", "{accountUrlName}/invitations/{ivkey}", new { controller = "home", action = "invitations" }); 

     routes.MapRoute("", "{urlName}", 
      new { controller = "home", action = "index", urlName = UrlParameter.Optional }); 

     routes.MapRoute("", "{accountUrlName}/{action}", 
      new { controller = "account", action = "dashboard", id = "", accountUrlName = UrlParameter.Optional }); 

     routes.MapRoute("", "{accountUrlName}/{controller}/{action}/{id}", 
      new { controller = "account", action = "dashboard", id = "", accountUrlName = ""}); 

     routes.MapRoute(
      "Default",            // Route name 
      "{controller}/{action}/{id}",       // URL with parameters 
      new { controller = "Home", action = "Index", id = "" } // Parameter defaults 
     ); 

    } 
+0

Не могли бы вы добавить немного больше информации? Вас интересует только действие login-action для имен учетных записей и любое другое действие для имен пользователей, или вы хотите, чтобы имя учетной записи отображалось также в маршрутах имен пользователей? Может быть, добавится еще несколько примеров-маршрутов. –

+0

Я хочу, чтобы имя учетной записи отображалось в URL-адресе. в моем маршруте у меня есть что-то вроде этого {accountUrlName}/login ", new {controller =" Home ", action =" login "}. Это похоже на работу на странице входа в систему, но никто другой из моего контроллера. что-то вроде этого: {accountUrlName}/{action} ", new {controller =" account ", action =" dashboard ", id =" ", accountUrlName = UrlParameter.Optional} {accountUrlName}/{controller}/{action }/{id} ", new {controller =" account ", action =" dashboard ", id =" ", accountUrlName =" "}. Это работает только для моей домашней страницы. – Syma

ответ

0

Таким образом, вы фактически есть два набора маршрутов здесь -

{AccountName}/{Controller}/{Action} и {Username}/{Controller}/{Action}.

Это право?

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

+0

Добавлен код маршрута. – Syma

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