HtmlHelper扩展来包装ServiceStack Markdown Razor的内容

本文关键字:Razor Markdown ServiceStack 扩展 包装 HtmlHelper | 更新日期: 2023-09-27 17:50:28

使用ServiceStack Markdown Razor,我如何创建一个HtmlHelper扩展方法,其工作方式如下:

在你的视图中你可以这样做:

@{
    using (Html.BeginLink())
    { 
        @Html.Raw("Hello World")
    }
}

生成结果:

<a>Hello World</a>

from This StackOverflow Answer

ServiceStack Markdown Razor没有ViewContext的概念,因此我不确定如何以与so答案相同的方式获得Writer。


我可以在ViewPage的StringBuilder直接从:

@{ this.ViewPage.Builder }

但是这是预期的访问方式吗?如果它打算直接访问StringBuilder, StringBuilder不会从HtmlHelper暴露代替ViewData(从MVC)吗?

HtmlHelper扩展来包装ServiceStack Markdown Razor的内容

你可以这样做:

public static class MyHelpers
{
    public static IHtmlString PrintHelloWorld(this HtmlHelper helper)
    {
        return helper.Raw("Hello World");
    }
}

确保上面的类与HtmlHelper在同一个命名空间中。