使用以下代码创建菜单结构作为我的MVC4应用程序的一部分:
public string loadTabStructure(int lvl, int pId)
{
string tabsStr = "";
DataView lvlTabs = null;
lvlTabs = dtTabs.AsDataView();
string strFilter = "";
if (lvl == 0)
{
strFilter = "Level = " + lvl;
}
else
{
strFilter = "Level = " + lvl + " AND ParentId = " + pId;
}
if (strFilter.Length > 0)
{
lvlTabs.RowFilter = strFilter;
}
DataTable dtLvl = lvlTabs.ToTable();
if (dtLvl.Rows.Count > 0)
{
tabsStr += "<ul>";
foreach (DataRow row in dtLvl.Rows)
{
tabsStr += "<li>" + row.Field<string>("TabName");
tabsStr += loadTabStructure(lvl + 1, row.Field<int>("TabID"));
tabsStr += "</li>";
}
tabsStr += "</ul>";
}
return tabsStr;
}
问题是运行它运行它显示&lt; ul&gt;和&lt; li&gt;标记为文本而不是将它们呈现为html标记。
有什么想法吗?
修改
loadRabStructure放在ViewBag.TabStructure中 视图看起来像这样
@{
ViewBag.Title = "Pages";
}
<h2>Pages</h2>
@ViewBag.TabStructure
答案 0 :(得分:5)
试试这个:
@{
ViewBag.Title = "Pages";
}
<h2>Pages</h2>
@Html.Raw(ViewBag.TabStructure)