asp.net - 当 debug 设置为 false 时,ModalPopupExtender 控件变得可见

标签 asp.net debugging modalpopupextender

我已将 ASP.NET Web 窗体应用程序部署到 IIS7 Web 服务器。只要 Web.config 的编译部分中的设置为 debug=true,它就可以完美运行。 。一旦我将其更改为 debug=false ,我理解这是应用程序运行时我应该做的事情,页面无法正确呈现。

具体来说,具有与 ModalPopupExtender 关联的面板的页面会加载面板内从一开始就显示的控件。这并不是说面板在不应该显示的时候显示了,而是面板内部的控件被渲染得好像它们不在面板内一样,导致控件随机分散在页面上。

一旦我设置debug=true问题再次消失。

编辑:经过进一步研究,我发现即使 debug=true如果我设置 ScriptModeweb.config 中设置我页面上 ToolkitScriptManager 的属性为 Release ,这也会导致启用 ModalPopupExtender 的面板出现相同的错误行为。因此,为了让事情正常工作,我必须有 debug=trueweb.configScriptMode=Debug中在页面的 ToolkitScriptManager 中。这是怎么回事?难道 Microsoft 不想让我发布我的应用程序吗?

其他信息: 我的 Web.config 文件显示我的目标是 .NET Framework 4.5 版本,虽然查看 IIS 中的应用程序池似乎显示我的 Web 服务器上的应用程序都使用版本 4,但我并不是特别精通与 IIS,所以我在下面发布了一个屏幕截图。这会导致我遇到的问题吗?

enter image description here

最佳答案

虽然这不是您所询问的问题的直接解决方案,但您可以在页面加载时隐藏存在此问题的任何页面的面板(而不是回发)。我过去曾见过这被用作 ModalPopupExtender 在不同场景下显示页面加载控件的解决方法。这应该可以防止控件在页面上不适本地呈现,但在需要弹出时仍然有效。

protected void Page_Load(object sender, EventArgs e) {
    if(!Page.IsPostBack)
        pnl.Visible = false;
}

我还发现,在托管网站的计算机上获取最新版本的 .NET Framework 可以修复很多此类问题。

关于asp.net - 当 debug 设置为 false 时,ModalPopupExtender 控件变得可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24821776/

相关文章:

asp.net - 在 ASP.NET 的另一个 UpdatePanel 中使用 TargetControl 调用模式弹出窗口

ASP.NET + ModalPopupExtender + 点击事件

c# - 我如何访问我正在拦截的对象?

c# - 带有 asp.net 文本框的 Bootstrap 输入组件

debugging - 资源的 status=canceled 在 Chrome 开发者工具中意味着什么?

c - gdb 如何检查二维数组元素

java - 如何使用 Eclipse 调试器检查 ResultSet 对象的内容?

c# - 如何将 C# 变量添加到 html 模态

javascript - 在 ajax 中转换传统帖子

c# - MEMCACHED get 方法总是返回 null