布尔属性的辅助函数显示“是”或“否”

时间:2011-02-17 13:12:28

标签: asp.net-mvc asp.net-mvc-2 asp.net-mvc-3

我试图在ASP.NET MVC 3中创建自己的帮助函数。不确定我是否在正确的路径上。我有一个名为Active的布尔属性,当我在显示视图上显示该属性时,文本是“True”或“False”。所以我想写自己的助手接受这个布尔值,并返回“是”或“否”。我需要帮助吗,还是有更短的方法?

这是我目前所拥有的,它没有编译,有人可以请帮助我吗?随附的单元测试将不胜感激。

public static IHtmlString ConvertBooleanToYesNo(this HtmlHelper htmlHelper, bool value)
{
   string str = string.Empty;

   if (value)
   {
      return htmlHelper.Encode("Yes");
   }
   else
   {
      return htmlHelper.Encode("No");
   }
}

更新

错误是:

无法将类型'string'隐式转换为'System.Web.IHtmlString'

我知道我必须转换它,但只是想知道这是否是最好的方法呢?

1 个答案:

答案 0 :(得分:5)

HtmlHelper.Encode返回一个String对象而不是IHtmlString。

使用return new HtmlString("Yes");

或者只是

public static IHtmlString ConvertBooleanToYesNo(this HtmlHelper htmlHelper, bool value) {
  return new HtmlString(value ? "Yes" : "No");
}

HtmlString类将为您处理编码,但在简单的“是/否”字符串的情况下,不需要编码。