MVC: Маршрут Get / Post для разных контроллеров.Как? - PullRequest
21 голосов
/ 10 июля 2011

Я пишу контроллер MVC, в котором мне нужно обрабатывать как возврат данных, так и длительный опрос «данные изменились», как и поведение из ОДНОГО (!) URL. Ничего не могу с этим поделать - я реализую прокси для уже существующего приложения, поэтому у меня нет возможности делать какие-либо расширения / модификации API.

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

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

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

1 Ответ

45 голосов
/ 11 июля 2011

Вы должны иметь возможность использовать ограничения на уровне маршрутизации, чтобы контролировать, к какому контроллеру / действию обращается 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") }
);
...