ASP.NET MVC класс, который представляет контроллер + набор действий?
-
22-07-2019 - |
Вопрос
Есть ли в структуре ASP.NET MVC класс, представляющий имя контроллера и имя действия?
Я пишу метод, который будет возвращать коллекцию URL-адресов, и я хочу, чтобы они возвращались как объекты, которые содержат свойство 'Controller' и 'Action' или что-то подобное.
Это потому, что иногда мне нужно изолировать только имя контроллера или только имя действия.
Есть объект Route, но он кажется слишком тяжелым для того, что я пытаюсь сделать.
Есть ли в ASP.NET MVC более простая абстракция?
Решение
Существует базовый класс Controller, а не имя. Имя действия - это просто строка, которую ActionInvoker будет использовать для поиска правильного действия с помощью отражения. Р>
Я думаю, вам придется использовать Словарь значений маршрута пар ключ / значение для представления маршрута.
RouteValueDictionary myValues = new RouteValueDictionary();
myValues.Add("Controller", "myController");
Вы можете использовать обычный словарь и затем преобразовать его в коде в RouteValueDictionary, если вы не хотите / не можете иметь доступ к пространству имен Routing. Р>
В этом подходе вы можете использовать ключи стандартного словаря или словаря routeValue для изоляции контроллера или действия.
String ControlString = myValues["Controller"]
Тогда делай что хочешь с этим. Возможно используйте константы для ключей, к которым вы хотите получить доступ. Р>