Я новичок в ASP.NET MVC.we создаю контроллер вроде этого AdminController, но назову его только с именем Admin. Как ASP.NET MVC справляется с этим, что нам не нужно вызывать контроллер с полным именем?Call Controler не с полным именем
ответ
Имя контроллера, указанное в URL-адресе, не совпадает с именем класса, так же как имя действия не совпадает с фактическим методом, установленным на контроллере. Существует внутреннее сопоставление между контроллером/действием и классом/методом, который выполняет MVC при определении того, какой код необходимо выполнить.
Родовое правило отображения:
- для контроллеров, взять имя контроллера (
Admin
) и добавьте суффиксController
к нему и искать класс с этим именем (AdminController
). - для действий, возьмите имя действия (
Details
) и выполните поиск метода на контроллере с тем же именем (ActionResult Details() {}
).
Однако в настоящее время MVC поддерживает явное сопоставление действия методу с другим именем через атрибут ActionName
. Таким образом, вы можете иметь действие с именем Edit
, которое отображается, например, на метод ActionResult EditUser() {}
.
Возможно, что будущие версии MVC могут также добавить аналогичный атрибут ControllerName
, который позволяет явное сопоставление определенного имени контроллера с конкретным классом. (На самом деле, надеюсь, они это сделают, чтобы помочь решить проблему с предоставлением различных реализаций одного и того же имени контроллера в разных областях)
Это обрабатывается инфраструктурой MVC Asp.Net с использованием маршрутов. Мы определяем маршруты в Global.aspx.cs. Маршрут определяет, какой контроллер должен быть вызван, и какое действие должно выполняться для заданного URL-адреса, например.
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Home", action = "Index", id = ""}
);
Также Asp.net MVC предпочитает использовать конфигурацию по согласованию. Так как конвенция «Дом» означает HomeController.
- 1. C# Enum.ToString() с полным именем
- 2. создание файла cookie с полным доменным именем
- 3. Временная метка разбора с полным именем страны
- 4. Roslyn - найти объявления с полным именем
- 5. ссылка Request.Browser с полным именем MVC
- 6. Поиск сборки системы с полным именем
- 7. Настройка протокола Heroku с полным доменным именем
- 8. Смотреть несколько переменных с полным именем неизвестных
- 9. Gem Ransack не возвращает результаты, когда искали с полным именем
- 10. app.config controler and writer
- 11. MVC4 Route as/{controler} - {id} вместо/{controler}/{id}
- 12. операция изменения Controler
- 13. AngularJS - App Controler
- 14. Как использовать два несовместимых класса с таким же полным именем?
- 15. IIS/Perl, открывающий файл в окнах с полным именем пути
- 16. Silverlight Assembly.Load() работает только с полным/сильным именем
- 17. Почему Serializable объявлен с полным именем в классах JDK?
- 18. Вызов родового неоднозначного метода, используя строку с полным именем класса
- 19. AD/IIS Одиночная регистрация с полным доменным именем
- 20. Создайте класс с полным именем и передайте его пользовательскому компоненту
- 21. Как разбить путь в perl с полным именем файла?
- 22. g: countryВыберите с полным именем страны как значение
- 23. Как сортировать основные данные, используя фамилию, только с полным именем?
- 24. Thymeleaf IMG не называя весенний Controler
- 25. Где узнать LC3 с полным полным объяснением?
- 26. href issue in view-controler
- 27. Почему методы в базовом классе с тем же именем (не подписи) должны быть вызваны с полным именем из унаследованного класса?
- 28. Разница между полным именем интерфейса и явно реализованным его свойством
- 29. экспорт не является полным
- 30. Несколько элементов с тем же именем в PHP SOAP Call