Страница справки WebApi: не избегайте HTML в документации XML

Я использую XML-документацию для моей страницы справки ASP.NET Web API как показано здесь. Я хотел бы знать, есть ли способ включить 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.

Вместо этого: (в этом случае <br/> удаляется каким-то образом - если я пытаюсь использовать теги <p>, они просто экранируются)

CRUD operations for SalesDocument This is a new line.

* Я уже пробовал тег <para>, предложенный несколькими сообщениями для всплывающих подсказок, но это не работает на моей странице справки.

Любые предложения приветствуются!

Ответы

Ответ 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>

Ответ 2

@controllerDocumentation не работает для меня, но меняется строка на @api.Documentation. т.е. @html.raw(api.Documentation).