ASP:菜单在IE10和IE11中没有正确显示,但在Chrome,FF和IE9中看起来很棒

时间:2016-05-13 06:06:31

标签: asp.net internet-explorer-11 internet-explorer-10 aspmenu aspmenu-control

我正在使用asp:Menu控件来创建选项卡式导航。该项目是在.Net 4.0中创建的。

以下内容用于创建标签:

<div class="tabmenustyle displayblock">
    <asp:Menu ID="_TabMenu" runat="server" Orientation="Horizontal">
    </asp:Menu>
</div>

这是在除IE10,IE11之外的所有浏览器中正确创建选项卡式结构。

实际的标签在上述浏览器中正确显示:

Image for Expected (as seen in IE8,Chrome,FF)

但在IE10和IE11中,标签不会显示。如果仔细观察,链接就在那里,但有以下问题:

  1. 他们几乎看不见。它们放在文本后面,而不是标签。
  2. 基本上,不会创建标签。
  3. Image for Tabs in IE11

    我尝试了以下内容:

    1. 添加元http-equiv =&#34; X-UA兼容&#34;含量=&#34; IE = 7,8&#34;标签
    2. 添加.browser文件以兼容App_Browser文件。
    3. 将解决方案中的所有项目从4.0迁移到.Net framework 4.5.2。
    4. 将z-index CSS属性应用于asp:menu控件。
    5. 还尝试将Page.ClientTarget设置为&#34; uplevel&#34;在Page_Load中。无济于事。
    6. 我在我的智慧&#39;结束。我应该尝试在IE10或IE11中正确显示所有内容。

      编辑:其他详细信息 - 我观察到的是,当浏览器是IE10或IE11时,发送到浏览器的HTML是一个表。但对于所有其他人来说,&lt; ul&gt;与&lt;一起发送li>作为导航菜单项。可能是IE10或IE11发送不同HTML的原因。

1 个答案:

答案 0 :(得分:0)

在尝试了大量解决方案后,我再次尝试查明问题。在App_Browser中添加.browser文件应该更早。原因是当我添加自己的IE11或IE10特定定义浏览器文件时,它覆盖了基本的.Net定义。

关键是使用refId在项目级app.browser引用IE11或IE10,并保持refID的值等于位于c:\ Windows \ Microsoft.NET \ Framework \的浏览器文件中使用的Id v4.0.30319 \ CONFIG \浏览器。这增加了现有规则。否则,它只是覆盖现有定义。