asp.net - 从 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 4.0 和 ASP.NET 3.5 Web 应用程序中的 asp:menu 呈现的 html。我怀疑 item.data 未定义,因为呈现的 html 上缺少一些数据属性。
推荐阅读
- javascript - 在每次出现日期格式 yyyy-mm-dd 时拆分字符串
- typo3 - TYPO3 TCA flexform:更改类型组的页面树视图,internal_type db
- android - 用于在谷歌上进行反向图像搜索并获得结果的 API(例如 json 格式)
- php - Google Suite Rest APi 更新用户照片 PHP
- java - 通过 Spring-boot 中的 REST 端点读取环境变量值
- azure - 在使用多个身份验证方案时防止 IDX10501 错误 (Microsoft.Identity.Web)
- flutter - 执行无头飞镖代码的 Flutter 插件
- json - 在 Spark scala 中将数据框列的数组展平为单独的列和相应的值
- docker - 等待启动 Docker Stack,直到挂载文件系统
- flutter - 未处理的异常:在收到完整标头之前连接已关闭。在 IOClient.send 和 BaseClient._sendUnstreamed 上出现异常