1

作成したこの拡張メソッドがあり、データベース内のすべてのカテゴリの文字列をハイパーリンクとして返します。素晴らしい!

@Html.MyMenu()

問題は、リンクがハイパーリンクとしてではなくテキストとして表示されていることです。

ソースコードを表示すると、次のように表示されます。

<div id="menucontainer">

                &lt;a href=&quot;/Anuncio/Electronics&quot;&gt;Electronics&lt;/a&gt;&lt;a href=&quot;/Anuncio/Clothes&quot;&gt;Clothes&lt;/a&gt;&lt;a href=&quot;/Anuncio/Domestic&quot;&gt;Domestic&lt;/a&gt;&lt;a href=&quot;/Anuncio/Garden&quot;&gt;Garden&lt;/a&gt;

            </div>

私は間違っているかもしれないと思いますが、MVC2(デフォルトのビューエンジンを使用)では次のことを覚えています:

<%: this is rendered, right? %>

それとも私は間違っていますか?とにかく、私はMVC3とRazorエンジンを使用しています。助けてくれてありがとう。私はこれについてできる限り多くのことを学ぶことを本当に楽しんでいます。

4

4 に答える 4

2

RazorはデフォルトでHTMLをエスケープします。

これを回避するには、次のようにしてください。

エスケープされていないHTML文字列の書き込み/出力

于 2010-12-14T13:12:00.210 に答える
1

RC2では、@HTml.Rawという新しいメソッドがこれに対応する必要があります。

または、MyMenuを変更して、文字列だけでなくHtmlStringまたはMvcStringを返すようにすることもできます。

于 2010-12-14T13:17:21.597 に答える
0

MvcHtmlStringを使用してページに正しく表示するには、拡張メソッドがを返す必要があり<%: %>ます。文字列を返す場合、すべての山かっこやその他のhtml特殊文字はhtmlでエンコードされます。

于 2010-12-14T13:12:46.527 に答える
0

RC2は@Html.Raw()をサポートして生のHTMLを出力します

スコットガスリーのRC2発表から

RC2では、Html.Raw()ヘルパーメソッドを追加しています。このメソッドを使用して、出力をHTMLエンコードせず、代わりにコンテンツを「現状のまま」レンダリングすることを明示的に示すことができます。</ p>

于 2010-12-14T17:44:42.800 に答える