Предположим, что у нас есть PHP-сайт со страницей http://site.com/res.php?anyparameters и мы хотим настроить маршрутизацию в ASP.NET MVC4 так, чтобы эта php-ссылка осталась без изменений (у клиентов уже есть софт, настроенный на работу с этим урлом). При этом в GET-запросе может быть параметр с именем "action" ("action=addfunds", "action=logout",...)
Тогда делаем следующее
1. В методе RegisterRoutes класса RouteConfig прописываем следующие URL-паттерны:
routes.MapRoute(
name: "ApiDocs",
url: "api",
defaults: new { controller = "Page", action = "Api" }
);
routes.MapRoute(
name: "pull_php",
url: "pull.php",
defaults: new { controller = "Method", action = "Pull", key = UrlParameter.Optional }
);
routes.MapRoute(
name: "pull",
url: "pull",
defaults: new { controller = "Method", action = "Pull", key = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}",
defaults: new {controller = "Page", action = "Main"});
2. В контроллере Method пишем
[HttpGet]
public ActionResult Pull(String key, String id)
{
var apiAction = Request["action"];
...
return View(result);
}
Вот и всё.
Комментариев нет:
Отправить комментарий