我有和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>
并且一切正常。