【问题标题】:Problem with events in default.aspx page (ASP.net 3.5)default.aspx 页面中的事件问题 (ASP.net 3.5)
【发布时间】:2011-09-19 08:51:38
【问题描述】:

我在使用母版页的 asp.net 网络表单时遇到问题。仅当页面命名为 default.aspx 时才会出现此问题。命名为 default.aspx 时,如果 Page_Load 事件中有任何代码,则不会触发其他事件。这还包括注释掉的所有代码

Default.aspx 代码

<%@ Page Title="" Language="C#" MasterPageFile="~/TWS/tws.Master" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="SITMComAU.TWS.original" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="bodyPlaceholder" runat="server">
</asp:Content>

OnInit 触发:- 通过断点检查

 public partial class original : System.Web.UI.Page
 {
    protected void Page_Load(object sender, EventArgs e)
    {


    }

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        int a = 1;
        int b = 2;
        int c = a;
    }
}

OnInit 不触发:- 通过断点检查

 public partial class original : System.Web.UI.Page
 {
    protected void Page_Load(object sender, EventArgs e)
    {
       /*
            int y = 5;
            int z = y - 1;
         */         
    }

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        int a = 1;
        int b = 2;
        int c = a;
    }
}

OnInit 不触发:- 通过断点检查

 public partial class original : System.Web.UI.Page
 {
    protected void Page_Load(object sender, EventArgs e)
    {

            int y = 5;
            int z = y - 1;

    }

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        int a = 1;
        int b = 2;
        int c = a;
    }
}

如果将 aspx、cs 和设计器文件重命名为默认值以外的任何内容,上述所有操作均有效。

至于母版页。它只是布局,.cs 文件中没有任何功能。

我尝试过的:

  • 重新启动 Visual Studio
  • 正在重新启动
  • 从 bin 中删除 dll、pdb 文件
  • 巫毒教
  • 拔掉我的头发
  • 拔掉别人的头发

希望有人能帮忙!

【问题讨论】:

  • 您还有哪些页面?他们中是否有人命名为Default? ASP.NET 项目存在无法自动正确实现命名空间(如果有的话)的麻烦,因此很可能是您存在类型冲突(即足以将事件绑定到 other Default ,也许。)
  • @Mr.失望的项目是一个网站,几个目录很深。其中一些具有 default.aspx 页面。我一直在思考这就是为什么该类是“原始”而不是“默认”或“_default”
  • 很奇怪,Voodoo 通常有效 :)
  • 尝试确保您的母版页没有问题。也许创建一个具有相同内容占位符但其中没有其他内容的新占位符,然后将其连接起来。还要检查 trace.axd msdn.microsoft.com/en-us/library/bb386420.aspx 看看你是否可以看到它在某个地方。
  • 还是没有运气,是吧?也许你可以把源文件发给我,我会尝试复制问题?

标签: c# asp.net webforms


【解决方案1】:

可能是事件被触发,而它只是 Visual Studio 调试器的一个问题,即您没有达到断点。尝试写入一些文件,看看是否会发生这种情况。

【讨论】:

    【解决方案2】:

    尝试更改代码隐藏命名空间和/或类,看看是否能解决问题。如果是这样,可能是由于另一个 default.aspx 页面的事件/控件受到干扰。

    【讨论】:

    • 如示例中所述,该类不是“默认”而是原始的
    • 由于您将 default.aspx 类命名为“原始”的做法,我认为这可能在某个地方存在冲突。您是否尝试将其更改为其他东西只是为了好玩?也许是 SITMComAU.TWS.originalXYZ。这至少会把这个理论抛到脑后。
    • 如果类后面的代码没有正确命名或重复,页面甚至不会运行;它甚至不会编译。这不可能。
    • 我只是在问题出现后才更改了类名。重命名页面类不是我的常规做法;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 2012-12-21
    • 2023-03-09
    • 1970-01-01
    • 2010-12-22
    • 2011-01-18
    相关资源
    最近更新 更多