use*_*928 3 c# asp.net-mvc odata asp.net-web-api
我正在使用默认的MVC帮助页面用于使用OData的Web API,它工作得很好但是如果我继承ODataController而不是ApiController,则不会生成帮助页面.它显示为空白.只有继承自ApiController的类才会显示在帮助页面上.
public class BaseApiController : ApiController
Run Code Online (Sandbox Code Playgroud)
工作正常,并在帮助页面中生成
public class BaseApiController : ODataController
Run Code Online (Sandbox Code Playgroud)
即使ODataController来自ApiController,也不会生成帮助页面
有任何想法吗?谢谢
这是你如何做到的.它真的很容易,但它也很危险!在您亲眼看到它之后,您可能不想这样做.
在AppStart\ODataConfig.cs文件中,确保将路由前缀设置为AppStart\WebApiConfig.cs中的前缀.在大多数情况下,它是api.
例如:config.Routes.MapODataRoute("odata","api",model);
然后将此行添加到每个实现要在帮助中显示的ODataController的控制器.
[ApiExplorerSettings(IgnoreApi = false)]
真的是这样的.流行的HelpPage插件依赖于观察装饰器的IApiExplorer.OdataController抽象类将此装饰器设置为(IgnoreApi = true).
如果您还使用"测试按钮"插件,如果您不熟悉odata,它可能无法正常工作,但您可以忽略默认内容并在其中放置正确的odata查询并执行它.
现在真正糟糕的部分是,如果你的odata配置和常规api配置共享相同的前缀,你似乎失去了odata导航.因此,帮助页面显示的odata常规过程不是直接消耗的,并且为了保留导航,指示的前缀是错误的,不值得将其留在生产应用程序中.
我要做的是,在帮助页面View中添加元数据的链接.
现在,如果我们可以让微软的某个人来开源,或者为odata控制器更新它,那就太好了.
| 归档时间: |
|
| 查看次数: |
1928 次 |
| 最近记录: |