Twitter Bootstrap和ASP.Net菜单不适用于路由

时间:2013-10-09 06:02:13

标签: asp.net twitter-bootstrap

我有和ASP.net menucontrol,所有工作都很好,直到我在网站上使用路由。 我已经使用menucontrol修复了“hoverissue”,因此我必须单击menuitems来显示子项目。 问题是,只要我使用路由并单击菜单,它就不会打开子项,它会将我重定向到http://www.xxx.com/RouteData/#(它只会添加# - 符号)。

我的Site.master

                        <asp:Menu ID="mnuMainMenu" runat="server" EnableViewState="False"
                        IncludeStyleBlock="False" Orientation="Horizontal"
                        CssClass="navbar navbar-nav"
                        StaticMenuStyle-CssClass="nav"
                        StaticSelectedStyle-CssClass="active"
                        DynamicMenuStyle-CssClass="dropdown-menu">
                        <LevelMenuItemStyles>
                            <asp:MenuItemStyle CssClass="dropdown" Font-Underline="False" />
                        </LevelMenuItemStyles>
                        <LevelSubMenuStyles>
                            <asp:SubMenuStyle CssClass="nav navbar-nav" Font-Underline="False" />
                        </LevelSubMenuStyles>
                    </asp:Menu>

我的Site.master.cs

        private void GetMenuData()
    {
        DataTable table = new DataTable();
        string strCon = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
        SqlConnection conn = new SqlConnection(strCon);
        string sql = "select menu_id, menu_name, menu_parent_id, menu_url from tbl_Menu";
        SqlCommand cmd = new SqlCommand(sql, conn);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(table);
        DataView view = new DataView(table);
        view.RowFilter = "menu_parent_id is NULL";
        foreach (DataRowView row in view)
        {
            MenuItem menuItem = new MenuItem(row["menu_name"].ToString(),
            row["menu_id"].ToString());
            menuItem.NavigateUrl = row["menu_url"].ToString();
            mnuMainMenu.Items.Add(menuItem);
            AddChildItems(table, menuItem);
        }

    }

    private void AddChildItems(DataTable table, MenuItem menuItem)
    {
        DataView viewItem = new DataView(table);
        viewItem.RowFilter = "menu_parent_id=" + menuItem.Value;
        foreach (DataRowView childView in viewItem)
        {
            MenuItem childItem = new MenuItem(childView["menu_name"].ToString(),
            childView["menu_id"].ToString());
            childItem.NavigateUrl = childView["menu_url"].ToString();
            menuItem.ChildItems.Add(childItem);
            AddChildItems(table, childItem);
        }
    }

是否有其他人遇到此问题并且有解决方案吗?

任何帮助都会很棒。

由于

编辑*已解决 像我一样愚蠢,我实际上发现了问题。 当我添加脚本以包含jQuery和bootstrap .JS文件时,我错过了一个〜

<script type="text/javascript" src="<%= Page.ResolveClientUrl("~/Scripts/jQuery-1.9.1.min.js") %>"></script>
<script type="text/javascript" src="<%= Page.ResolveClientUrl(" /Scripts/bootstrap.min.js") %>"></script>

现在更正为:

<script type="text/javascript" src="<%= Page.ResolveClientUrl("~/Scripts/jQuery-1.9.1.min.js") %>"></script>
<script type="text/javascript" src="<%= Page.ResolveClientUrl("~/Scripts/bootstrap.min.js") %>"></script>

并且一切正常。

0 个答案:

没有答案