在我在站点上使用路由之前,我有和 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>
一切都很好。