如何将此值传递给项目中其他网页中的标签?

时间:2016-08-03 15:52:01

标签: c# asp.net

我正在尝试从CreateProject页面获取输入到txtProjectName的内容,然后将其放入带有消息的标签中,似乎我尝试的所有内容都无效。

我把它放在页面' Congratulations.aspx'

<%@ PreviousPageType VirtualPath="~/Pages/CreateProject.aspx" %>

在Congratulation.aspx.cs&#39;中,这是在Page_Load

lblCongratsMsg.Text = PreviousPage.ProjectName + "has been........"

在&#39; CreateProject.aspx.cs页面中,我有这个......

    public string ProjectName
    {
        get
        {
            return txtProjectName.Text.Trim();
        }
    }

我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

请参阅以下教程:

http://www.java2s.com/Tutorial/ASP.NET/0100__Page-Lifecycle/CrosspagepostVBnet.htm

重点:

<asp:Button ID="Button1" Runat="server" Text="Submit page to itself" 
     OnClick="Button1_Click" />
<asp:Button ID="Button2" Runat="server" Text="Submit page to NextPage.aspx"
     PostBackUrl="NextPage.aspx" />

要使用PreviousPageType,您需要发布跨页帖子,而不是回发到同一页面。

答案 1 :(得分:0)

要将数据从一个网页移动到另一个网页,您可以使用ASP.NET提供的各种状态管理技术,例如:

  • 会话状态
  • 申请状态
  • 查询字符串
  • 缓存

我建议您阅读它们并了解何时应该使用哪个 - ASP.NET State Management Overview

以下是使用查询字符串的简单示例:

第一页 - 捕获数据并将用户重定向到第二页:

protected void btnOK_Click(object sender, EventArgs e)
{
    string url = String.Format("Congratulations.aspx?data={0}", txtData.Text);
    Response.Redirect(url);
}

第二页 - 从查询字符串中读取值并显示在Label控件中

protected void Page_Load(object sender, EventArgs e)
{
    lblData.Text = Request.QueryString["data"].ToString();
}