2012-02-29 62 views
2

這是用我的代碼在輔助類ASP.NET MVC3剃刀助手返回純文本

public static string GenerateMenu(this HtmlHelper helper) 
    { 
     var items = GetAllMenuItems(); 
     bool isIndex = false; 
     var currentUrl = HttpContext.Current.Request.Url; 
     StringBuilder menu = new StringBuilder(); 

     if (currentUrl.AbsolutePath == "/") 
     { 
      isIndex = true; 
     } 

     menu.AppendLine("<ul class=\"layout-menu\">"); 

     foreach (var item in items) 
     { 
      menu.Append("<li><a "); 
      if (isIndex) 
      { 
       if (items.First() == item) 
       { 
        menu.Append("class=\"menuItemSelected\" "); 
       } 
      } 
      if(currentUrl.AbsolutePath.ToLower().Contains(item.NavigateURL.ToLower())) 
      { 
       menu.Append("class=\"menuItemSelected\" "); 
      } 
      menu.Append("href=\"" + item.NavigateURL + "\">"); 
      menu.Append(item.Text); 
      menu.Append("</a></li>" + Environment.NewLine); 
     } 
     menu.AppendLine("</ul>"); 

     return menu.ToString(); 
    } 

林顯示它

@ Html.GenerateMenu()

這使得它完美,但不是作爲功能對象,而只是純文本,有什麼幫助?

感謝

+2

你有沒有嘗試將返回類型改爲'MvcHtmlString'? – Lester 2012-02-29 20:48:10

回答

3

,因爲你正在使用MVC3可以使用HtmlString

public static HtmlString GenerateMenu(this HtmlHelper helper) 
    { 
     /* 
      your code here 
     */ 

     return new HtmlString(menu.ToString()); 

    } 
1

您的返回類型更改爲MvcHtmlString並返回new MvcHtmlString(menu.ToString());

1

我建議:

public static MvcHtmlString GenerateMenu(this HtmlHelper helper) 
{ 
    .... 
    return new MvcHtmlString(menu.ToString()); 
}