J'ai fait ma méthode d'aide htmlPourquoi aide HTML personnalisé ne rend pas étiquette correctement
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);
}
Mais quand je veux l'utiliser dans la vue comme celui-ci @Html.MedalImage(HtmlHelpers.Color.Red)
il rend:
<img alt="Image not found" src="/Content/Medals/redMedal.png" />
Et dans ce cas, il ne fait pas d'image, seulement du texte. Mais lorsque j'utilise @Html.Raw(Html.MedalImage(HtmlHelpers.Color.Red))
, cela fonctionne comme prévu et restitue mon image. Quelqu'un peut-il me dire pourquoi? Ou comment réparer mon assistant pour ne pas avoir à utiliser la méthode Html.Raw?