2010-03-29 5 views
0

В VIPUsers Area У меня есть контроллер ProfileController и другие контроллеры.Маршрут сопоставления и параметры в ASP.NET MVC

Если я хочу, чтобы у каждого метода в ProfileController был параметр (id) , и каждый метод в других контроллерах имел параметр (userid и id) , как бы его сопоставить?

Будет ли

context.MapRoute(
    "ProfileMapping", 
    "VIPUsers/Profile/{action}/{id}", 
    new {controller="ManageUsers", id=""} 
); 

, а затем карту по умолчанию один для всех контроллеров?

context.MapRoute(
    "Default", 
    "VIPUsers/{controller}/{action}/{userId}/{id}", 
    new {action="Index", userId="", id = ""} 
); 

и ... это все? Я вижу, что это работает, но потом это странно ...

Если я перейду на страницу ProfileController и даю ему два параметра после {action} (VIPUsers/Profile/SomeAction/4/4 /), он будет использовать второй сопоставленный маршрут. Это верно?

благодаря

, и если я хочу, чтобы URL всегда требуют UserId, как указать, что?

ответ

1

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

http://www.asp.net/learn/mvc/tutorial-24-cs.aspx

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