私は私のhtmlヘルパーメソッドカスタムHTMLヘルパーが正しく
public static string MedalImage(this HtmlHelper helper, Color color)
{
var builder = new TagBuilder("img");
switch (color)
{
case Color.Blue:
builder.MergeAttribute("src", "/Content/Medals/blueMedal.png");
break;
default:
builder.MergeAttribute("src", "/Content/Medals/redMedal.png");
break;
}
builder.MergeAttribute("alt", "Image not found");
return builder.ToString(TagRenderMode.SelfClosing);
}
作らしかし、私はこの@Html.MedalImage(HtmlHelpers.Color.Red)
ようにビューでそれを使用したいとき、それはレンダリングタグをレンダリングしない理由:
<img alt="Image not found" src="/Content/Medals/redMedal.png" />
この場合、画像は作成せず、テキストのみを作成します。
しかし、@Html.Raw(Html.MedalImage(HtmlHelpers.Color.Red))
を使用すると、予想どおりに動作し、画像がレンダリングされます。誰かが私に理由を教えてくれますか?または私のヘルパーを修正する方法は、私はHtml.Rawメソッドを使用する必要はありません?