Спецификация формата ответа в ASP.NET MVC 3 Routes - PullRequest
1 голос
/ 15 апреля 2011

Я создаю API для веб-сайта.Я использую ASP.Net MVC 3 и пытаюсь создать маршруты, которые поддерживают необязательный параметр .format.Таким образом, клиентское приложение может запросить /user/post.json, /user/posts.xml или просто / users / posts. Мне удалось выполнить работу с конечным URL-адресом .json или .xml, используя следующий маршрут:

    routes.MapRoute( _
        "no_params", _
        "{controller}/{action}.{format}", _
        New With {.action = "Index", .format = UrlParameter.Optional} _
    )

Но я не мог заставить URL-адрес работать без параметра .format (/ user / posts).Может кто-нибудь помочь мне с примером?

спасибо!

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

Во-первых, я бы сказал, что клиент может указать тип, используя 'content-type', а не по URL:)

Но чтобы он заработал, вам нужно зарегистрировать другой маршрут без формата, так как использование / user / posts не содержит точку (.) И не может соответствовать указанному вами маршруту.

routes.MapRoute("no_params_no_format", "{controller}/{action}", _</p> <pre><code> New With {.action = "Index" } _ )

НТН

0 голосов
/ 15 апреля 2011

Просто удалите точку:

routes.MapRoute( _
    "no_params", _
    "{controller}/{action}{format}", _
    New With {.action = "Index", .format = UrlParameter.Optional}, _
    New With {.format = "(\.json|\.xml)?"} _
)
...