RazorEngine:不能使用Html.Raw

ff8*_*nia 19 asp.net-mvc razor razorengine

在asp.net外面使用RazorEngine当我尝试使用@Html.Raw("html string here")以下方法编写原始html时遇到此错误:

无法编译模板.当前上下文中不存在名称"Html"

你能帮助我吗?

谢谢!

ff8*_*nia 25

解决方案已在此处找到:https://github.com/Antaris/RazorEngine/issues/34

它足以使用@(new RawString("html string here"))@Raw("html string here")代替@Html.Raw("html string here").

我希望这有帮助!再见

  • 这些都不再适用于 dotnet 5。 (2认同)

Bri*_*ice 5

我实现了我自己的 Raw,其结果同时实现了 IHtmlString 和 IEncodedString ......并且它起作用了!:)

In my csthml:
@MyRazorParser.Raw("<b>Testing</b>")
Run Code Online (Sandbox Code Playgroud)

这在 MVC 使用它RazorEngine 解析器使用它时都有效。

public class MyRawResult : RazorEngine.Text.IEncodedString, System.Web.IHtmlString
{
    public string Value;
    public MyRawResult(string value) { Value = value; }
    public string ToEncodedString()
    {
        return Value;
    }

    public string ToHtmlString()
    {
        return Value;
    }

    public override string ToString()
    {
        return Value;
    }
}

public static class MyRazorParser
{
    public static object Raw(string str)
    {
        return new MyRawResult(str);
    }
}
Run Code Online (Sandbox Code Playgroud)