这是我在帮助程序类中的代码
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()
它完美呈现它但不是功能对象,而只是纯文本,任何帮助?
由于
答案 0 :(得分:3)
因为您使用的是mvc3,所以可以使用HtmlString
public static HtmlString GenerateMenu(this HtmlHelper helper)
{
/*
your code here
*/
return new HtmlString(menu.ToString());
}
答案 1 :(得分:1)
将您的退货类型更改为MvcHtmlString
并返回new MvcHtmlString(menu.ToString());
答案 2 :(得分:1)
我建议:
public static MvcHtmlString GenerateMenu(this HtmlHelper helper)
{
....
return new MvcHtmlString(menu.ToString());
}