我正在尝试设置ASP.NET Help Pages以在现有的MVC项目中运行,尽管指向同一解决方案中的Web API项目的文档文件。约定在其正在记录的Web API中运行帮助页面,但在这种情况下,我希望它在兄弟MVC项目中。
Web API项目将其文档XML文件输出到MVC项目的文件夹中。
我在MVC项目中安装了Microsoft.AspNet.WebApi.HelpPage NuGet package。这会创建一个类\Areas\HelpPage\App_Start\HelpPageConfig.cs
,并且在此类的Register
方法中,我已将XmlDocumentationProvider
路径传递给Web API的文档文件。
但是当我加载页面时,除了标题和占位符描述之外,它都是空的。
调试HelpController.Index
方法后,我可以在返回的IApiExplorer
中看到_apiDescriptions
为空。
但是,如果我将帮助页面直接安装到Web API项目并调试相同的方法,我可以看到_apiDescriptions
现在已经存在。
任何人都可以解释一下Web API项目正在做什么或者已经配置了哪些MVC项目没有做或没有配置?
答案 0 :(得分:5)
请自己设置一下,如果我正在阅读您正确说出的内容,我认为我遇到了类似的问题。
尝试以下方法:
//// Uncomment the following to use the documentation from XML documentation file.
config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/ApiDocumentation.xml")));

这有望解决您的问题!
答案 1 :(得分:1)
我不确定这是否会帮助其他人偶然发现这一点,我从VS开始使用空白模板,并通过Nuget包添加了帮助文件。
因为它是一个空白模板而我没有设置区域,所以它缺少来自global.asax的以下内容
AreaRegistration.RegisterAllAreas();
这样就无法调用HelpPageConfig.Register,因此从未设置过Xml文档提供程序。