2

RazorEngine 3 を使用して HTML 要素をテンプレートに挿入しようとしています。これを試してみると、結果の文字列 (後で HTML として使用) は、HTML マークアップを使用してページをレンダリングするのではなく、HTML マークアップを表示してしまいます。

コード:

var linkText = new HtmlString("<a href=" + location + ">" + linkName + "</a>");
string result = Razor.Parse(template, new {MyLink = linkText});

テンプレート ファイル:

Link to file: @Model.MyLink

結果の HTML:

Link to file: <a href=http://blah.com>Blah link</a>

この機能は RazorEngine 2 で正常に動作していましたが、別の不具合のためにアップグレードする必要がありました。さらに、これはコンソール アプリケーションであるため、@Raw 機能の追加は複雑になる可能性があります。

4

1 に答える 1

2

答えは、テンプレートに渡される文字列型変数を使用することになりました。テンプレートは、次に示すように Raw() メソッドを使用します。

コード:

string linkText = "<a href=" + location + ">" + linkName + "</a>";
string result = Razor.Parse(template, new {MyLink = linkText});

テンプレート ファイル:

Link to file: @Raw(@Model.MyLink)
于 2012-10-31T17:32:16.033 に答える