【发布时间】:2015-04-09 19:19:35
【问题描述】:
好吧,这不是 有趣的结局......
我正在尝试在 .Net WebAPI 中模拟基于 RoR 的服务。该服务的 Ruby 实现应该从以下 url 返回一个 JSON 文档:
http://myserver/api/assessments/{id}.js
注意最后的.js。
我在我的 api 控制器上做了一个RouteAttribute 装饰,如下所示:
[Route("~/api/assessments/{id}.js")]
public async Task<HttpResponseMessage> GetAssessment(int id)
{
. . .
}
...但是我收到 404 错误。我怀疑这可能是因为请求以“js”结尾,所以经过一番研究,我发现我应该将我的RouteCollection.RouteExistingFiles 设置为true...这似乎没有任何效果。我仍然得到 404。
我说的对吗? .js 是结束导致 404 的原因吗?我怎样才能解决这个问题?这是一个纯粹的 WebApi 项目,所以无论如何我都不会在其中使用 JavaScript。
【问题讨论】:
-
这可能对你有帮助stackoverflow.com/questions/11494200/…阅读约束部分。
-
你有什么理由必须在你的服务端点上保留这个“扩展”吗?这在 Web API 中永远不是必需的,因为您可以通过内容协商返回 JSON。
-
[Route("~/api/assessments/{id:int}.js")] 并且您的配置应该将 runAllManagedModulesForAllRequests 设置为 true。
-
好吧,就像我说的,我正在尝试模拟 RoR 的服务......这就是服务所期望的。
-
路由调试器真的很有帮助:haacked.com/archive/2008/03/13/url-routing-debugger.aspx我建议发布这些结果
标签: c# asp.net-web-api asp.net-mvc-routing attributerouting