2011-02-17 73 views
0

我想在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"); 
    } 
} 

UPDATE

錯誤是:

無法隱式轉換類型 '字符串' 到 'System.Web.IHtmlString'

我知道我必須把它轉換,但只是想知道這是否是最好的方法呢?

+1

看起來不錯。你能發佈編譯錯誤嗎? – Chandu 2011-02-17 13:17:54

+0

@Cyber​​nate:查看更新 – 2011-02-17 13:24:44

回答

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類將處理編碼爲你,但在一個簡單的「是/否」的字符串的情況下,無需編碼。