ASP.NET Webform OnClick事件未正确触发

时间:2017-12-12 15:46:59

标签: c# asp.net webforms

我有一个带有一堆asp控件的默认页面(初始登录页面),一切都很棒。我还有一个带有一个asp按钮控件的管理页面(我简化了帖子)。两者都包含在Site.Master页面上的表单元素中。我的管理页面上不会触发按钮单击事件。这是我的按钮事件和页面代码/代码:

网页代码

<%@ Page Title="Admin1" Language="C#" MasterPageFile="~/Site.Master" 
AutoEventWireup="true" CodeBehind="Admin1.aspx.cs" 
Inherits="HPRMWebClientReporting.Admin1" %>         

 <asp:Content runat="server" ID="AdminContent" 
    ContentPlaceHolderID="AdminContent">
    <asp:Button ID="ButtonGo" runat="server" Text="Button" Width="111px" 
    OnClick="ButtonGo_Click" />
</asp:Content>

背后的代码

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

        }
    }

    protected void ButtonGo_Click(object sender, EventArgs e)
    {
        this.Context.Items["Msg"] = "It worked!!!.";
        Server.Transfer("MessagePage.aspx");
    }
}  

以下是发生的事情:

  1. 浏览默认页面的Page_Load
  2. 浏览Site.Master页面的Page_Load
  3. 刷新我的网站并显示默认页面
  4. 点击按钮时,它的点击事件或我的管理页面的Page_Load都没有?按钮单击应该将其带到MessagePage页面。

    这让我发疯了。我确实尝试在没有运气的情况下将原因验证转为假。有什么想法吗?

    注意:此外,也许这可以帮助某人确定我做错了什么。我更改了页面代码,因此它不使用MasterPageFile Site.Master,我只是将按钮包装在自己的表单元素中,它工作正常,但我不希望它以这种方式工作,因为我想使用Master页。

1 个答案:

答案 0 :(得分:0)

我找到了一些有用的东西虽然我没有进一步的研究我不完全确定原因。在我的Site.Master页面和帖子中提到的表单元素中,我提取了 action =“/”,现在我的控件也在管理页面上工作,正如我所期望的那样。

 <form id="Form1" action="/" method="post" runat="server">     
    <asp:ContentPlaceHolder ID="HomeContent" runat="server">
    </asp:ContentPlaceHolder>
    <asp:ContentPlaceHolder ID="ContactContent" runat="server">
    </asp:ContentPlaceHolder>
    <asp:ContentPlaceHolder ID="AboutContent" runat="server">
    </asp:ContentPlaceHolder>
    <asp:ContentPlaceHolder ID="AdminContent" runat="server">
    </asp:ContentPlaceHolder>
</form>