2014-03-12 16 views
13

Ich verwende XML-Dokumentation für meine ASP.NET-Web-API-Hilfeseite as shown here. Ich würde gerne wissen, ob es eine Möglichkeit gibt, HTML in die Kommentare aufzunehmen, so dass es auf der Webseite gerendert wird, anstatt dass es entfernt/ignoriert/maskiert wird.
Insbesondere suche ich nach einer Möglichkeit, eine neue Zeile zu erstellen, aber in der Lage, Listen mit Aufzählungszeichen usw. zu erstellen, wäre großartig!Web API Hilfeseite - html nicht in XML-Dokumentation entkommen

Ex/Ich möchte in der Lage sein, so etwas zu tun:

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

und haben es auf der Hilfeseite wie folgt zeigen:

CRUD operations for SalesDocument 
This is a new line. 

Statt dessen: (in dieser Fall wird <br/> irgendwie entfernt - wenn ich <p> Tags versuchen sie es mit, sie entkam nur)

CRUD operations for SalesDocument This is a new line. 

* Ich habe bereits das Tag <para> versucht, wie es von mehreren Beiträgen für Tooltips vorgeschlagen wird, aber das funktioniert nicht auf meiner Hilfeseite.

Alle Vorschläge werden sehr geschätzt!

Antwort

28

In der installierten XmlDocumentationProvider.cs Datei auf Areas\HelpPage, Sie für eine Methode ‚GetTagValue‘ genannt aussehen kann ... hier den Rückgabewert von ‚node.Value.Trim()‘ auf ‚node.InnerXml‘ ändern.

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

    return null; 
} 

Öffnen Sie nun die installierte Datei Areas\HelpPage\Views\Help\DisplayTemplates\ApiGroup.cshtml und ändern Sie die folgende Zeile aus:

<p>@controllerDocumentation</p> 

zu

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

Fantastisch! Das '@ Html.Raw' war der Schlüssel, den ich vermisste ... 1000 Dankeschön, mein Herr, du hast mir nur den Tag gemacht! =) –

+13

Ich habe mich gefragt, warum es für mich nicht funktioniert hat, dann habe ich festgestellt, dass es an mehreren Stellen gemacht werden muss (abhängig davon, wo die Tags funktionieren sollen). Die, die ich gemacht habe, waren ApiGroup.cshtml, HelpPageApiModel.cshtml und ResourceModel.cshtml (suche nach .Documentation und .RequestDocumentation in jedem). Dachte, dass es der nächsten Person helfen könnte, die das findet :) – zeroid

+3

Ich musste 'return parameterNode.InnerXml;' in 'GetDocumentation' ändern, um mit den Parameterabschnitten zu arbeiten –

-1

@controllerDocumentation nicht für mich arbeiten, aber die Linie zu @api.Documentation Werke zu verändern. d.h. @html.raw(api.Documentation).

Verwandte Themen