2010-11-23 23 views
1

我有一個HTML幫助器,它接受一個破損的地址並對其進行格式化,但我將實際的<br />標記看作文本而不是在我的網頁上換行。 我在做什麼導致這種情況發生?爲什麼換行標記顯示爲來自自定義Html助手的文本asp.net mvc

這裏是我的助手方法

public static HtmlFormatAddress(this helper, string number 
    , string fraction 
    , string direction 
    , string street 
    , string type 
    ....) 
{ 
    var sb = new StringBuilder(); 
    if (!string.IsNullOrEmpty(number)) 
     sb.Append(number.Trim() + " "); 
    if (!string.IsNullOrEmpty(fraction)) 
     sb.Append(fraction.Trim() + " "); 
    if (!string.IsNullOrEmpty(direction)) 
     sb.Append(direction.Trim() + " "); 
    if (!string.IsNullOrEmpty(street)) 
     sb.Append(street + " "); 
    if (!string.IsNullOrEmpty(type)) 

    if (sb.Length > 0) 
     sb.Append("<br />"); 
    ..... 
    return sb.ToString(); 
} 

回答

3

如果這是MVC2/ASP.NET 4,您需要返回的MvcHtmlString代替String

如果沒有,那麼可以肯定你是不是<%: %>編碼輸出,而是使用<%= %>

+0

謝謝安德魯。就是這樣。 – zSynopsis 2010-11-23 20:09:04

1
你可能使用 <%: %>語法編碼字符串

的一部分。

嘗試使用<%= %>代替

或更改返回類型MvcHtmlString這隻會要求你寫return MvcHtmlString.Create(sb.ToString());

相關問題