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