ASP.NET母版页和内容页之间如何互相传值
我们在asp.net中创建一个完整的母版页之后,接下来必然要创建内容页。从用户访问的角度来讲,内容页与最终结果页的访问路径相同,这好像表明二者是同一文件,实际不然。结果页是一个虚拟的页面,没有实际代码,其代码内容是在运行时状态下母版页和内容页合并的结果。
在开始介绍内容页之前,还有两个概念需要强调:一是内容页中所有内容必须包含在Content控件中;二是内容页必须绑定母版页。虽然内容页的扩展名与普通ASP.NET页面相同,但是,其代码结构有着很大差别。在创建内容页的过程中,必须时刻牢记以上两个重要概念。
内容页Index.aspx文件源代码
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" CodeFile="Index.aspx.cs" Inherits="Index" Title="示例5-1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" runat="Server">
</asp:Content>
两个控件内部包含的内容是页面的非公共部分。通过设置属性ContentPlaceHolderID,将Content1与母版页的ContentPlaceHolder1对应,将Content2与母版页的ContentPlaceHolder2对应。在页面运行时,Content控件中包含的内容将显示在母版页中的对应位置。
ASP.NET之母版页和内容页之间的传值
获取母版页上文本框的值赋给内容页的文本框
this.TextBox1.Text = (Master.FindControl("textBox1") as TextBox).Text;
获取内容页上文本框的值赋给母版页的文本框
TextBox1.Text = (this.ContentPlaceHolder1.FindControl("textBox1") as TextBox).Text;