c# – HtmlHelper扩展,用于包装ServiceStack Markdown Razor的内容

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

In your views you can now do:

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

Which yields the result:

<a>Hello World</a>

This StackOverflow Answer开始

ServiceStack Markdown Razor没有ViewContext的概念,所以我不确定如何以与SO Answer相同的方式获得Writer.

UPDATE

我可以直接从ViewPage的StringBuilder获取:

@{ this.ViewPage.Builder }

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

最佳答案 你可以这样做:

public static class MyHelpers
{

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

只需确保上面的类与HtmlHelper位于同一名称空间中.

点赞