1

在我在站点上使用路由之前,我有和 ASP.net menucontrol 并且一切正常。我已经用菜单控件修复了“悬停问题”,所以我必须单击菜单项来显示子项。问题是,一旦我使用路由并单击菜单,它就不会打开子项目,而是将我重定向到http://www.xxx.com/RouteData/#(它只添加了 # - 符号)。

我的网站.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>

我的站点.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>

一切都很好。

4

0 回答 0