Jer*_*y G 12 c# asp.net asp.net-mvc asp.net-web-api asp.net-mvc-apiexplorer
我试图在我的Web服务的控制器中实现一个Options方法,它将返回一个消息,其中包含与控制器关联的URI端点的有效HTTP方法.我的Options方法看起来像这样:
public HttpResponseMessage Options()
{
var resp = new HttpResponseMessage();
resp.Content = new StringContent("");
var apiExplorer = GlobalConfiguration.Configuration.Services
.GetApiExplorer();
foreach (ApiDescription api in apiExplorer.ApiDescriptions)
{
resp.Content.Headers.Add("Allow", api.HttpMethod.Method);
}
return resp;
}
Run Code Online (Sandbox Code Playgroud)
我已经在具有Get,Post和Delete方法的控制器内部的全新Web Api项目(暗示:未改变的路由)中尝试了上述方法.正如所料,返回"允许:GET,POST,DELETE"的响应.但是,我遇到了麻烦,将其添加到我正在处理的更大的项目中.在较大的项目中,ApiExplorer中的ApiDescriptions列表不包含任何元素.为什么是这样?我怀疑这是由于已经实现的自定义路由,尽管怀疑的唯一依据是以下链接:
http://forums.asp.net/t/1821651.aspx/1
有没有其他人经历过这个空的ApiDescription列表?如果是这样,你找到了补救措施吗?
注意:我使用的是MCV 4 RC
您应该升级到昨天发布的 WebApi RTM,然后查看昨天发布的新发布的ASP.NET WebApi 帮助页面(预览版) 。
该包会自动生成站点上 Web API 的帮助页面内容。您的帮助页面的访问者可以使用此内容来了解如何调用您的 Web API。帮助页面生成的所有内容都可以使用 ASP.NET MVC 和 Razor 完全自定义。
它正在幕后实现 ApiExplorer。
| 归档时间: |
|
| 查看次数: |
7836 次 |
| 最近记录: |