WebApi帮助页面:不要在XML文档中转义HTML

时间:2014-03-12 15:53:58

标签: asp.net-web-api asp.net-web-api-helppages

我在ASP.NET Web API帮助页面as shown here中使用XML文档。 我想知道是否有一种方法可以在评论中包含html,使其在网页上呈现,而不是被删除/忽略/转义。
具体来说,我正在寻找一种创建换行符的方法,但是能够创建项目符号列表等会很棒!

前/我希望能够做到这样的事情:

/// <summary>
/// CRUD operations for SalesDocument<br/>
/// This is a new line
/// </summary>
[RoutePrefix("api/SalesDocument")]
public partial class SalesDocumentController : ApiController

并在帮助页面上显示如下:

CRUD operations for SalesDocument 
This is a new line.

而不是:(在这种情况下,<br/>会以某种方式被删除 - 如果我尝试使用<p>标记,则只会将其转义)

CRUD operations for SalesDocument This is a new line.

*我已按照工具提示的多个帖子的建议尝试了<para>标记,但这不适用于我的帮助页面。

非常感谢任何建议!

2 个答案:

答案 0 :(得分:30)

XmlDocumentationProvider.cs的已安装Areas\HelpPage文件中,您可以查找名为GetTagValue的方法。此处修改从node.Value.Trim()node.InnerXml的返回值。

private static string GetTagValue(XPathNavigator parentNode, string tagName)
{
    if (parentNode != null)
    {
        XPathNavigator node = parentNode.SelectSingleNode(tagName);
        if (node != null)
        {
            return node.InnerXml; 
        } 
    }

    return null;
}

现在打开已安装的文件Areas\HelpPage\Views\Help\DisplayTemplates\ApiGroup.cshtml并修改以下行:

<p>@controllerDocumentation</p>

<p>@Html.Raw(controllerDocumentation)</p>

答案 1 :(得分:2)

@controllerDocumentation对我不起作用,但将行更改为@api.Documentation有效。即@html.raw(api.Documentation)