首页 > 解决方案 > 从 3.5 升级到 4.0,asp 菜单悬停在不工作

问题描述

我正在尝试将 Web 应用程序从 dot net 3.5 升级到 4.0。

通过添加 controlRenderingCompatibilityVersion 和 clientIDMode 属性更改了 web.config。这使它们看起来正确。

<pages autoEventWireup="false" theme="MTheme" viewStateEncryptionMode="Always" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">

但是,在那之后,asp 菜单悬停不工作。我已经将其追溯到这个eval函数没有返回任何内容。

function Menu_GetData(item) {
    if (!item.data) {
        var a = (item.tagName.toLowerCase() == "a" ? item : WebForm_GetElementByTagName(item, "a"));
        var menu = Menu_FindMenu(a);
        try {
            item.data = eval(menu.id + "_Data");
        }
        catch(e) {}
    }
    return item.data;
}

在评估为此值的 3.5 版本中:

ctl00_MasterTabs_Data {disappearAfter:500, horizontalOffset:0, verticalOffset:0 }

如果在调试器中手动设置 item.data 以具有该值,则悬停菜单有效。

我尝试将 DisappearAfter="500" (以前没有值)添加到 asp:Menu 但它似乎没有任何区别。

标签: asp.net

解决方案


比较 ASP.NET 4.0 和 ASP.NET 3.5 Web 应用程序中的 asp:menu 呈现的 html。我怀疑 item.data 未定义,因为呈现的 html 上缺少一些数据属性。


推荐阅读