c# - 为 ServiceStack Markdown Razor 包装内容的 HtmlHelper 扩展

标签 c# .net razor servicestack razor-2

使用 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。


更新

我可以直接从 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 在同一个命名空间中即可。

关于c# - 为 ServiceStack Markdown Razor 包装内容的 HtmlHelper 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14105044/

相关文章:

c# - 使用 GraphDiff 更新多对多关联

c# - C# 开发者的编程问题书 - 算法

c# - 如何在 ASP.net Core 2 中创建动态 API

c# - 使用嵌套数据创建 Razor 表

javascript - 像 '&' 和 '£' 这样的特殊字符会剪切我传递的 Twitter 文本

c# - ASP.NET MVC3、Razor - 在 Javascript 中使用 ViewBag 或 URL 变量

c# - XP上的C#应用​​程序崩溃

c# - 为什么 HttpClient 使用 HTTPS 比 HTTP 快得多?

.net - 使用包含丹麦字符的 json 数据调用时出现 WCF Web 服务请求错误

c# - .Net Nest Elastic搜索-如何使用文档获取索引名称