助手将 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
我正在研究 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