У меня есть поисковый Api, над которым я работаю, который должен возвращать результаты поиска в блоке Html (используя стили, определенные клиентом на их конце) . Я также хотел бы вернуть результаты в Json для будущего материала Api, который мы в конечном итоге будем использовать. В настоящее время маршруты выглядят следующим образом:
/api/1/search/json?param1=blah¶m2=blah&etc
/api/1/search/html?param1=blah¶m2=blah&etc
Для справки, здесь шаблон /{area}/1/{controller}/{action}.
Мне нравится внешний вид некоторых API, которые я видел, которые возвращают результаты в разных форматах, в зависимости от «расширения», которое они имеют в URL-адресе, а-ля:
/api/1/search.json?param1=blah¶m2=blah&etc
Однако я не понял, как настроить Mvc-маршрутизацию Asp.Net для поддержки этого стиля. Общая маршрутизация в ApiAreaRegistration.cs:
context.MapRoute(
"Api_default",
"Api/1/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional });
Я пробовал следующее, определенное выше общего, но оно не работает:
//search api
context.MapRoute(
"searchJson",
"api/1/{controller}.{action}",
new { controller = "SearchController" });
Как мне настроить маршрутизацию для включения URL-адресов в стиле .format?