web-dev-qa-db-ja.com

RazorEngine:Html.Rawを使用できません

asp.netの外部でRazorEngineを使用する@Html.Raw("html string here")を使用して生のhtmlを書き込もうとすると、このエラーが発生します。

テンプレートをコンパイルできません。 「Html」という名前は現在のコンテキストには存在しません

手伝って頂けますか?

ありがとう!

21
ff8mania

解決策はここにあります: https://github.com/Antaris/RazorEngine/issues/34

@(new RawString("html string here"))の代わりに@Raw("html string here")または@Html.Raw("html string here")を使用するだけで十分です。

これがお役に立てば幸いです。さようなら

27
ff8mania

結果がIHtmlStringとIEncodedStringの両方を実装する独自のRawを実装しました...そしてそれは機能しました! :)

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

これは、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);
    }
}
4
Brian Rice