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

发布于 2024-11-02 07:03:12 字数 436 浏览 3 评论 0原文

我正在为网站创建 API。我正在使用 ASP.Net MVC 3,并且尝试创建支持可选 .format 参数的路由。因此客户端应用程序可以请求 /user/post.json、/user/posts.xml 或只是 /user/posts 我能够使用以下路线使 .json 或 .xml 结束 url 工作:

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

但我无法使没有 .format 参数 (/user/posts) 的 url 一起工作。有人可以帮我举一些例子吗?

谢谢!

I'm creating an API for a website. I'm using ASP.Net MVC 3 and I'm trying to create routes that support an optional .format parameter. So the client app could request /user/post.json, /user/posts.xml or just /users/posts
I was able to make the .json or .xml ending url's work using the following route:

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

But I couldn't make the url without the .format parameter (/user/posts) work alongside. Can anyone help me out here with some example?

thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暗地喜欢 2024-11-09 07:03:12

首先,我想说客户端可以使用“内容类型”而不是在网址上指定类型:)

但是要使其正常工作,您将需要注册另一个没有格式的路由,因为使用 /user/posts 不包含句点(.) 它与您指定的路线不匹配。

<代码>
paths.MapRoute("no_params_no_format", "{controller}/{action}", _

    New With {.action = "Index" } _
)

HTH

Firstly I would say that the client can specify the type using 'content-type' rather than on the url :)

But to get it working you will need to register another route without the format since using /user/posts does not contain a period (.) it cannot match the route you specified.


routes.MapRoute("no_params_no_format", "{controller}/{action}", _

    New With {.action = "Index" } _
)

HTH

江湖彼岸 2024-11-09 07:03:12

只需删除点:

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

Just remove the dot:

routes.MapRoute( _
    "no_params", _
    "{controller}/{action}{format}", _
    New With {.action = "Index", .format = UrlParameter.Optional}, _
    New With {.format = "(\.json|\.xml)?"} _
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文