Как я узнаю во время выполнения, к какой области принадлежит контроллер в asp.net mvc? - PullRequest
0 голосов
/ 28 ноября 2009

Так как этот материал довольно новый, я не смог найти для него хороших ссылок.

Я хочу использовать рефлексию для перечисления через все контроллеры в моем приложении. Это не сложно, используя отражение. Но так как области приходят на место. Как узнать, к какой области (если есть) принадлежит конкретный контроллер?

Может быть, я делаю это неправильно, возможно, мне нужно вместо этого перечислить через область ... так тогда как мне это сделать? Что если контроллер не принадлежит ни к какой области? Есть ли по умолчанию один?

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

1 Ответ

1 голос
/ 28 ноября 2009

Вам придется либо изменить пространство имен, в котором находятся ваши контроллеры, чтобы обнаружить области, либо перехватить данные маршрута из (RouteTable.Routes) цикла через него и попытаться сопоставить токены данных, то есть то, что вы вставили в {controller } и / или URL-адрес:

Вот как получить информацию о маршруте:

 foreach (RouteBase routeBase in RouteTable.Routes)
 {
      Route route = routeBase as Route;

      var routeUrl = route.Url;                
 }

Phil Haacks Route Debugger может помочь вам: http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx

Хорошая статья MSDN об областях: http://msdn.microsoft.com/en-us/library/ee461420(VS.100).aspx

Звучит сложно, удачи!

...