Подтвердить что ты не робот

MVC: Route Get/Post для разных контроллеров. Как?

Я пишу MVC-контроллер, где мне нужно обрабатывать как данные, так и длинные опросы "данные изменились", как поведение с SAME (!) url. NothingI может это сделать - я внедряю прокси для уже существующего приложения, поэтому у меня нет возможности делать какие-либо расширения/модификации API.

Моя основная проблема: * Операции POST должны быть завершены немедленно. * Операции GET занимают больше времени (иногда могут занимать часы).

Могу ли я как-то переписать оба, чтобы перейти к разным контроллерам? Альтернативой было бы... hm... сделать как асинхронное, просто POST заканчивается справа три, а затем.

Кто-нибудь прокомментировал это?

4b9b3361

Ответ 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") }
);