RazorEngine:不能使用Html.Raw

时间:2014-05-12 07:46:09

标签: asp.net-mvc razor razorengine

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

  

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

你能帮助我吗?

谢谢!

2 个答案:

答案 0 :(得分:22)

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

使用@(new RawString("html string here"))@Raw("html string here")代替@Html.Raw("html string here")就足够了。

我希望这有帮助! 再见

答案 1 :(得分:4)

我实现了我自己的Raw,其结果同时实现了IHtmlString和IEncodedString ......它有效! :)

In my csthml:
@MyRazorParser.Raw("<b>Testing</b>")

当RazorEngine解析器使用它时,MVC使用时,这都适用。

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);
    }
}