Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Markdown in ASP.NET Core Views rendern
JimStark
myCSharp.de - Member

Avatar #dOpLzh7hN1az1g0eGRc0.jpg


Dabei seit:
Beiträge: 250

Themenstarter:

Markdown in ASP.NET Core Views rendern

beantworten | zitieren | melden

Ausgehend von meinem letzten Post habe ich mal einen minimalen TagHelper gemacht, mit dem man direkt Markdown in Razor Views darstellen kann.
Dies könnte z.B. für Blogs, News,... nützlich sein.
Als Markdown Prozessor wird Markdig verwendet.

Benötigte NuGet-Packages:
Zitat
markdig
Microsoft.AspNetCore.Mvc.TagHelpers

Der Datei _ViewImports.cshtml folgendes hinzufügen:


@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, MarkdownTagExample

MarkdownTagExample mit eurem Projektnamen ersetzen, "*" gibt an dass alle TagHelper(-Ableitungen) in der jeweiligen Assembly hinzugefügt werden.

TagHelper hinzufügen (am besten in einen TagHelpers-Ordner, siehe Namespace):


using Microsoft.AspNetCore.Razor.TagHelpers;
using Markdig;

namespace MarkdownTagExample.TagHelpers
{


    // Tag: <markdown md-content="@mymarkdown"/>
    [HtmlTargetElement("markdown", TagStructure = TagStructure.WithoutEndTag)] 
    public class MarkdownTagHelper : TagHelper
    {
        public string MdContent {get;set;}

        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            // Markdown will be rendered between div
            output.TagName = "div";
            output.TagMode = TagMode.StartTagAndEndTag;

            output.Content.SetHtmlContent(Markdown.ToHtml(MdContent));
        }
    }
}

Markdown-Tag im View hinzufügen:


@{
    ViewData["Title"] = "Home Page";
    var md = "# Test\n- *Hello World!*\n - __Test__";
}

<markdown md-content="@md"/>

Mehr Infos: Tag Helpers in ASP.NET Core
GitHub Projekt: markdown-tag-aspnet
private Nachricht | Beiträge des Benutzers