助手将 html 显示为字符串 asp.net MVC 5

helper show the html as a string asp.net MVC 5

我正在研究 asp.net MVC 5,我为布尔值创建了一个助手。

我写了这个:

public class CustomHelper
    {
        public static string Boolean(bool? value)
        {
            if(value == true )
                return string.Format("<span class='glyphicon glyphicon-ok green'></span>");
            else
                return string.Format("<span class='glyphicon glyphicon-remove red'></span>");
        }
    }

剃刀是:

<td>
     @CustomHelper.Boolean(item.Deleted)
</td>

但结果和照片一样。 html 显示为字符串

如何解决?这样我就可以显示符号了吗? 谢谢

默认情况下,@ 符号对输出进行编码。 您应该创建自定义检查作为 HtmlHelper class 的扩展方法,如下所示

    public static class BooleanExtensions
         {
              public static MvcHtmlString Boolean(this HtmlHelper helper, bool value)
              {
                  var spanTag = new TagBuilder("span");
                  if(value)
                     spanTag.MergeAttribute("class", glyphicon glyphicon-ok green");
                  else
                     spanTag.MergeAttribute("class", glyphicon glyphicon-remove red");

                   return MvcHtmlString.Create(spanTag.ToString(TagRenderMode.EndTag));           

              }
         }

接下来,在您的 Razor 视图中,将其命名为:

@Html.Boolean(item.Deleted)

不要忘记在视图的开头为具有 class 的命名空间添加 @using