MVC: Route Get/Post для разных контроллеров. Как?
Я пишу MVC-контроллер, где мне нужно обрабатывать как данные, так и длинные опросы "данные изменились", как поведение с SAME (!) url. NothingI может это сделать - я внедряю прокси для уже существующего приложения, поэтому у меня нет возможности делать какие-либо расширения/модификации API.
Моя основная проблема:
* Операции POST должны быть завершены немедленно.
* Операции GET занимают больше времени (иногда могут занимать часы).
Могу ли я как-то переписать оба, чтобы перейти к разным контроллерам? Альтернативой было бы... hm... сделать как асинхронное, просто POST заканчивается справа три, а затем.
Кто-нибудь прокомментировал это?
Ответы
Ответ 1
Вы должны иметь возможность использовать ограничения на уровне маршрутизации, чтобы контролировать, к какому контроллеру/действию относится URL-адрес.
routes.MapRoute(
"route that matches only GETs for your url",
"your url",
new { controller = "some controller", action = "some action" },
new { httpMethod = new HttpMethodConstraint("GET") }
);
routes.MapRoute(
"route that matches only POSTs for your url",
"your url",
new { controller = "some other controller", action = "some other action" },
new { httpMethod = new HttpMethodConstraint("POST") }
);