Настройка маршрутизации ASP.NET MVC для обслуживания URL-адресов стилей «.json» «.xml»

У меня есть поисковый Api, над которым я работаю, который должен возвращать результаты поиска в блоке Html (используя стили, определенные клиентом на их конце) . Я также хотел бы вернуть результаты в Json для будущего материала Api, который мы в конечном итоге будем использовать. В настоящее время маршруты выглядят следующим образом:

/api/1/search/json?param1=blah&param2=blah&etc
/api/1/search/html?param1=blah&param2=blah&etc

Для справки, здесь шаблон /{area}/1/{controller}/{action}.

Мне нравится внешний вид некоторых API, которые я видел, которые возвращают результаты в разных форматах, в зависимости от «расширения», которое они имеют в URL-адресе, а-ля:

/api/1/search.json?param1=blah&param2=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?

9
задан Dusda 26 August 2011 в 20:23
поделиться