gpt4 book ai didi

asp.net - 通过母版页访问内容页变量

转载 作者:行者123 更新时间:2023-12-01 03:55:02 26 4
gpt4 key购买 nike

我知道在 ASP.net 中,我们可以通过内容页访问母版页变量,但是无论如何我们可以通过母版页访问内容页变量?

最佳答案

是的你可以。您必须实现一个基类,并且内容类应该从该基类派生。

编辑:发布标记和更改代码以获得更清晰的示例

我创建了一个继承 System.Web.UI.Page 的基页,然后让内容页继承它。我的主页:

namespace WebApplication2
{
public class BasePage : System.Web.UI.Page
{
public BasePage() { }

public virtual string TextValue()
{
return "";
}

}
}

这是我的内容页面标记:
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>


<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<asp:Label ID="lblContentText" Text="Contentpage TextValue:" runat="server"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</asp:Content>

内容页面代码:
namespace WebApplication2
{
public partial class _Default : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{

}

public override string TextValue()
{
return TextBox1.Text;
}
}
}

我的主页标记:
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="WebApplication2.SiteMaster" %>

<!DOCTYPE html>
<html lang="en">
<head runat="server">
<meta charset="utf-8" />
<title><%: Page.Title %> - My ASP.NET Application</title>
<asp:ContentPlaceHolder runat="server" ID="HeadContent" />
</head>
<body>
<form runat="server">
<header> </header>
<div id="body">
<asp:Label ID="lblText" runat ="server" Text="Masterpage Text :" />
<asp:TextBox ID="txtMaster" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Click to read content page TextValue " OnClick="Button1_Click" />
<asp:ContentPlaceHolder runat="server" ID="MainContent" />
</div>
<footer>
</footer>
</form>
</body>
</html>

以及后面的母版代码中的实现:
namespace WebApplication2
{
public partial class SiteMaster : MasterPage
{
BasePage Currentpage = null;
protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button1_Click(object sender, EventArgs e)
{
Currentpage = this.Page as BasePage;
if (Currentpage != null)
{
txtMaster.Text = Currentpage.TextValue();
}
}
}
}

如果您看到任何类似 BasePase 无法识别的错误,请确保它使用相同的命名空间(即 WebApplication2),或者命名空间已添加到实现页面(即使用 WebApplication2;)。

希望能帮助到你!

关于asp.net - 通过母版页访问内容页变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18063194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com