2009-08-05 2 views
1

Существует ли класс в структуре MVC ASP.NET, который представляет имя контроллера и имя действия?ASP.NET MVC класс, представляющий контроллер + набор действий?

Я пишу метод, который возвращает коллекцию URL-адресов, и я хочу, чтобы они были возвращены как объекты, которые содержат свойство «Контроллер» и «Действие» или что-то подобное.

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

Есть объект Route, но он кажется слишком тяжелым для того, что я пытаюсь сделать.

Есть ли более простая абстракция в ASP.NET MVC?

ответ

2

Существует базовый класс контроллера, но не имя, а название действия - это просто строка, которую ActionInvoker будет использовать для поиска правильного действия с помощью отражения.

Я думаю, вам нужно будет использовать пары ключей/значений Route Values Dictionary для представления маршрута.

RouteValueDictionary myValues = new RouteValueDictionary(); 
myValues.Add("Controller", "myController"); 

Вы можете использовать обычный словарь, а затем преобразовать его в код на RouteValueDictionary, если вы не хотите/не может иметь доступ к пространству имен маршрутизации.

В этом подходе вы можете использовать ключи стандартного словаря или словаря routeValue для выполнения изоляции контроллера или действия.

String ControlString = myValues["Controller"] 

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

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