Страница справки 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)
.