从另一个页面发布页面读取值的最佳方法是什么?

时间:2015-07-01 14:53:19

标签: c# asp.net namevaluecollection postbackurl

从另一个页面发布页面读取值的最佳方法是什么?我有一些有用的东西,但看起来很草率。

我正在处理多页表单,第一页使用PostBackUrl转到第二页。

在第1页中,内容占位符名为" CPH1"。在里面是一个名为" First_Name"。

的字段

我使用PostBackUrl将第一页提交到第二页。

然后,第二页的代码隐藏文件读取值并使用以下代码将其放入变量中:

protected void Page_Load(object sender, EventArgs e)
   {
       NameValueCollection nvc = Request.Form;
       string First_Name_Here = nvc["ctl00$CPH1$First_Name"] ;
   }

正如您所看到的,我通过使用字段的最终名称&#34; ctl00 $ CPH1 $ First_Name&#34;而不是&#34; First_Name&#34;来获取信息。< / p>

有更好的方法吗?

编辑如下:

感谢大家的帮助。仍然没有想到这一点,但已经接近了。

使用此代码:     ContentPlaceHolder CPH1 = Page.Master.FindControl(&#34; CPH1&#34;)作为ContentPlaceHolder;     回复于(CPH1.FindControl(&#34;&将First_Name#34));

给我这个结果:System.Web.UI.WebControls.TextBox。

我还没想到的是如何将TextBox的值作为字符串获取。似乎我尝试的任何事都会导致错误。

3 个答案:

答案 0 :(得分:0)

请仔细阅读以下文章,其中包含您需要的所有信息。

http://www.asp.net/web-forms/overview/older-versions-getting-started/master-pages/control-id-naming-in-content-pages-cs

 ContentPlaceHolder MainContent = Page.Master.FindControl("MainContent") as ContentPlaceHolder;

 Label ResultsLabel = MainContent.FindControl("First_Name") as Label;

答案 1 :(得分:0)

根据您在其他页面上的发布方式,您可以选择几种方式。

您可以选择使用以下语法获取Previous Page控件:

TextBox tbControl = (TextBox)PreviousPage.FindControl("First_Name");

您还可以在“源”页面中公开public properties并在目标页面上访问它。

Label1.Text = PreviousPage.First_Name;

关于跨页面发布的MSDN文章:https://msdn.microsoft.com/en-us/library/ms178139.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1

答案 2 :(得分:0)

你怎么样Request.Redirect去另一个页面,你可以在同一个请求中传递参数,然后使用Request.QueryString [“NameoftheParameter”]访问它们。

例如: - 使用参数field1调用第2页: - 的Response.Redirect( “〜/ Page2.aspx FIELD1 =?” xyz.Text);

访问第2页上的变量字段1,如下所示: - String field1 = Request.QueryString [“field1”];

希望这有帮助!

相关问题