控制器生成<ul>和<li>标签加载为文字文本</li> </ul>

时间:2013-11-07 11:00:18

标签: c# asp.net asp.net-mvc-4

使用以下代码创建菜单结构作为我的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

1 个答案:

答案 0 :(得分:5)

试试这个:

@{
    ViewBag.Title = "Pages";
}

<h2>Pages</h2>

@Html.Raw(ViewBag.TabStructure)