ASP.NET MVC 3路由中的响应格式规范

问题描述

| 我正在为网站创建API。我正在使用ASP.Net MVC 3,并且试图创建支持可选.format参数的路由。因此,客户端应用可以请求/user/post.json、/user/posts.xml或仅请求/ users / posts    我可以使用以下路由使.json或.xml结束url \的工作:
    routes.MapRoute( _
        \"no_params\",_
        \"{controller}/{action}.{format}\",_
        New With {.action = \"Index\",.format = UrlParameter.Optional} _
    )
但是如果没有.format参数(/ user / posts),我无法使url起作用。有人可以帮我一些例子吗? 谢谢!     

解决方法

只需删除点:
routes.MapRoute( _
    \"no_params\",_
    \"{controller}/{action}{format}\",_
    New With {.action = \"Index\",.format = UrlParameter.Optional},_
    New With {.format = \"(\\.json|\\.xml)?\"} _
)
    ,首先,我要说的是客户端可以使用\'content-type \'而不是url来指定类型:) 但是要使其正常工作,您将需要注册另一种不带格式的路由,因为使用/ user / posts不包含句点(。),它不能与您指定的路由匹配。
    routes.MapRoute(\"no_params_no_format\",\"{controller}/{action}\",_

    New With {.action = \"Index\" } _
)
高温超导