我的 ASP.Net 菜单和关联的 MenuItem 在 Chrome 中未正确呈现。也就是说,它们都是同时呈现的,按页面顺序向下呈现,而不是作为下拉菜单。
当我从解决方案(包括在 Chrome 中)运行页面时,它们可以正常工作,但是当我将其部署到测试服务器时,菜单的嵌套性质就会丢失。在我的示例中,“管理员维护”、“网格维护”、“今日屏幕”和“设置”都应该是“管理员”菜单下的项目,最后 3 个应该是“设置”下的项目。它们设置正确,并且,如前所述,它们在 VS 中运行时工作正常。
截图:
我的代码:
<asp:Menu ID="Menu1" runat="server" CssClass="menu"
EnableViewState="False" IncludeStyleBlock="False" Orientation="Horizontal" StaticDisplayLevels="1">
<Items>
<asp:MenuItem Text="PTS Home" Value="PTS Main" NavigateUrl="Default.aspx">
</asp:MenuItem>
<asp:MenuItem Text="Admin" Value="Admin">
<asp:MenuItem Text="Admin Maintenance" Value="Admin_Admin Maintenance" NavigateUrl="~/Secure/Admin/AdminMaintenance.aspx">
</asp:MenuItem>
<asp:MenuItem Text="Grid Maintenance" Value="Admin_Grid Maintenance" NavigateUrl="~/Secure/Admin/GridMaintenance.aspx">
</asp:MenuItem>
<asp:MenuItem Text="Today Screen" Value="Admin_Today Screen" NavigateUrl="~/Secure/Admin/TodayScreen.aspx">
</asp:MenuItem>
<asp:MenuItem Text="Setup" Value="Admin_Setup">
<asp:MenuItem Text="Reserve Owner Codes" Value="Admin_Setup_Reserve Owner Codes"
NavigateUrl="~/Secure/Admin/MaintainOwnerCodes.aspx"></asp:MenuItem>
<asp:MenuItem Text="Reserve Product Codes" Value="Admin_Setup_Reserve Product Codes"
NavigateUrl="~/Secure/Admin/MaintainProductCodes.aspx"></asp:MenuItem>
<asp:MenuItem Text="Enter New Grade" Value="Admin_Setup_Enter New Grade" NavigateUrl="~/Secure/Admin/MaintainGrades.aspx">
</asp:MenuItem>
</asp:MenuItem>
</asp:MenuItem>
... //Other items
</Items>
</Menu>
最奇怪/最烦人的事情是,在生产服务器上,当我第一次加载页面时,它会这样做,但我离开并回来,它会自行修复。在测试服务器上,它只是保持损坏。
此外,这种行为也发生在 IE 8 中,尽管我怀疑这是一个红鲱鱼,无论如何我的用户都没有使用 IE 8。
我已经包含了 IIS 关键字,因为我觉得这更像是服务器问题而不是代码问题,但我不确定。我不确定我们运行的是哪个版本的 Windows Server/IIS,并且我们的服务器管理员目前不在。当我有这些信息时,我会在稍后更新这个问题,但我希望无论如何可能会有答案。
更新 Windows Server 2008 R2 SP1、IIS7。