我正在使用由Visual Studio 2012中的nuget提供的最新Web Api XML文档。实际上,我正在进行XML注释,我可以获得具有此类属性的类的帮助页面:
Name
Description
Type
Additional information
我想知道是否可以添加一个来插入数据示例,但我无法在评论中找到该模型。
我执行以下操作:
/// <summary>
/// My description
/// </summary>
/// <example>My example</example>
但它似乎没有出现。
我知道我需要更改Parameters.cshtml
中加载的模型,以便在html中显示它(这不是问题)但是......
如何更改此模型?
提前致谢
答案 0 :(得分:1)
Web API不支持这样做,因此您必须自己构建它。虽然它并不那么困难,但您应首先考虑是否将示例添加到描述本身并不能完成工作。
视图,您应该在其中添加第3列:
Areas/HelpPage/Views/Help/DisplayTemplates/ApiGroup.cshtml
相关摘要:
@foreach (var api in Model)
{
<tr>
<td class="api-name"><a href="@Url.Action("Api", "Help", new { apiId = api.GetFriendlyId() })">@api.HttpMethod.Method @api.RelativePath</a></td>
<td class="api-documentation">
@if (api.Documentation != null)
{
<p>@api.Documentation</p>
}
else
{
<p>No documentation available.</p>
}
</td>
</tr>
}
然后,您很快意识到需要查看ApiDescription
模型。
ApiDescription
最相关的属性似乎是:
- ParameterDescriptions
(参数集合。曝光:Name, Source, Documentation
)
- ResponseDescription
这些是基础知识。为了实现正确的帮助页面,这个URL也将证明有很多用处: http://blogs.msdn.com/b/yaohuang1/archive/2012/12/10/asp-net-web-api-help-page-part-3-advanced-help-page-customizations.aspx
以下是我的基本实现,其中列出了参数name
和source
<h2 id="@Model.Key.ControllerName">@Model.Key.ControllerName</h2>
@if (!String.IsNullOrEmpty(controllerDocumentation))
{
<p>@controllerDocumentation</p>
}
<table class="help-page-table">
<thead>
<tr>
<th>API</th>
<th>Description</th>
<th>Params</th>
</tr>
</thead>
<tbody>
@foreach (var api in Model)
{
<tr>
<td class="api-name"><a href="@Url.Action("Api", "Help", new { apiId = api.GetFriendlyId() })">@api.HttpMethod.Method @api.RelativePath</a></td>
<td class="api-documentation">
@if (api.Documentation != null)
{
<p>@api.Documentation</p>
}
else
{
<p>No documentation available.</p>
}
</td>
<td class="api-documentation">
@foreach (var p in api.ParameterDescriptions)
{
@p.Name @:- @p.Source
}
</td>
</tr>
}
</tbody>
</table>