【问题标题】:WebApi Help Page: don't escape HTML in XML documentationWebApi 帮助页面:不要在 XML 文档中转义 HTML
【发布时间】:2014-03-12 15:53:58
【问题描述】:

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

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

/// <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.

而不是这个:(在这种情况下,&lt;br/&gt; 以某种方式被删除 - 如果我尝试使用 &lt;p&gt; 标记,它们只是被转义)

CRUD operations for SalesDocument This is a new line.

*我已经尝试了多个帖子建议的工具提示&lt;para&gt;标签,但这在我的帮助页面上不起作用。

非常感谢任何建议!

【问题讨论】:

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


    【解决方案1】:

    在已安装的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>
    

    【讨论】:

    • 太棒了! @Html.Raw 是我丢失的关键... 1000 感谢您,好先生,您让我开心! =)
    • 我想知道为什么它对我不起作用,然后我意识到它需要在多个地方完成(取决于您希望标签在哪里工作)。我所做的是 ApiGroup.cshtml、HelpPageApiModel.cshtml 和 ResourceModel.cshtml(在每个中查找 .Documentation 和 .RequestDocumentation)。认为它可能会帮助下一个找到这个的人:)
    • 我必须在 GetDocumentation 中更改 return parameterNode.InnerXml; 才能使用参数部分
    • 你认为这值得为 GitHub 上的 HelpPages 项目提出拉取请求吗?
    • 建议不要在 cmets 中编写 html 代码,而是对新行进行查找和替换:stackoverflow.com/a/25464271/632495
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-24
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      相关资源
      最近更新 更多