母版页是';t在postBack上正确加载

本文关键字:postBack 加载 母版页 | 更新日期: 2023-09-27 18:26:44

首先,我是asp.net的新手(几天的经验)。我正在使用Visual Studio 2013提供的默认内容来处理Web窗体应用程序。

场景:单击按钮后,我想更改组胺(h2)的文本。

问题:我正在使用Visual Studio提供的默认母版页,但它没有在postBack上正确加载。根据我的判断,它用于布局的资源无法访问?我不完全确定我做错了什么。如果有人能启发我,我将不胜感激

到目前为止我的代码:

Default2.aspx:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<asp:Content runat="server" ContentPlaceHolderID="MainContent">
    <h2 id="h1" runat="server">Change me please.</h2>
    <asp:Button ID="b1" Text="Submit" runat="server" OnClick="dothis" />
</asp:Content>

默认2.aspx.cs:

public partial class Default2 : Page
{
    protected void dothis(object sender, EventArgs e)
    {
        Header.InnerHtml = "Hello world.";
    }
}

母版页是';t在postBack上正确加载

请参阅服务器端(C#、ASP.NET)的change html标记文本,了解需要实现的代码。在您的情况下:

h1.InnerHtml = "Hello";

作为一种替代方案,您可以在头标记中包装标签或文字控件之类的东西,而不是使用<h2>服务器控件,如下所示:

<h2><asp:LiteralControl runat="server" id="HeaderLiteral">Change me please</asp:LiteralControl></h2>

然后在你身后的代码中,你可以这样做:

HeaderLiteral.Text = "Hello World!";

个人偏好,但我通常回避服务器控制。没有特别的原因,但为了完整起见,提出了这个建议。