asp.net-mvc
  • razor
  • helper
  • 2016-10-16 33 views 1 likes 
    1

    我正在研究asp.net MVC 5,我为布尔创建了一个帮助器。帮手将html显示为字符串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显示为一个字符串 enter image description here

    如何解决它?所以我可以显示符号呢? 谢谢

    +0

    取悦小explination开头的类的命名空间,我不明白你什么意思 –

    +0

    使用MvcHtmlString.Create代替的String.Format –

    +0

    和你的助手是不是扩展到MVC helpers它只是一个具有方法的类。检查mvc helpers概念在asp.net网站 –

    回答

    1

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

    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) 
    

    不要忘记添加@使用已在视图

    相关问题