C# 让一个页面读取从另一个页面发布的值的最佳方式是什么?
让一个页面读取另一个页面发布的值的最佳方式是什么?我有一些有用的东西,但似乎有些马虎 我正在处理一个多页表单,第一页使用PostBackUrl转到第二页 在第1页中是名为“CPH1”的内容占位符。里面是一个名为“First_Name”的字段 我使用PostBackUrl将第一页提交给第二页 然后,第二页的代码隐藏文件读取该值,并使用以下代码将其放入变量中:C# 让一个页面读取从另一个页面发布的值的最佳方式是什么?,c#,asp.net,namevaluecollection,postbackurl,C#,Asp.net,Namevaluecollection,Postbackurl,让一个页面读取另一个页面发布的值的最佳方式是什么?我有一些有用的东西,但似乎有些马虎 我正在处理一个多页表单,第一页使用PostBackUrl转到第二页 在第1页中是名为“CPH1”的内容占位符。里面是一个名为“First_Name”的字段 我使用PostBackUrl将第一页提交给第二页 然后,第二页的代码隐藏文件读取该值,并使用以下代码将其放入变量中: protected void Page_Load(object sender, EventArgs e) { NameV
protected void Page_Load(object sender, EventArgs e)
{
NameValueCollection nvc = Request.Form;
string First_Name_Here = nvc["ctl00$CPH1$First_Name"] ;
}
如您所见,我使用字段的最终名称“ctl00$CPH1$First_name”而不是“First_name”来获取信息
有更好的方法吗
编辑如下:
谢谢大家的帮助。我还没弄明白,但已经接近了
使用此代码:
ContentPlaceHolder CPH1=Page.Master.FindControl(“CPH1”)作为ContentPlaceHolder;
Write(CPH1.FindControl(“First_Name”)
给我这个结果:System.Web.UI.WebControls.TextBox
我还没有弄清楚的是如何将文本框的值作为字符串获取。似乎我尝试的任何东西都会导致错误。请仔细阅读下面的文章,其中包含您需要的所有信息
根据您发布到其他页面的方式,您有几个选项 您可以选择使用以下语法获取
上一页
控件:
TextBox tbControl = (TextBox)PreviousPage.FindControl("First_Name");
您还可以从源页面公开公共属性
,并在目标页面上访问它
Label1.Text = PreviousPage.First_Name;
MSDN关于跨页发布的文章:您的请求如何。重定向到另一页,您可以在同一请求中传递参数,然后使用Request.QueryString[“参数名称”]访问它们 例如:- 使用参数字段1调用第2页:- Response.Redirect(“~/Page2.aspx?field1=“xyz.Text”) 访问第2页上的变量字段1,如下所示:- String field1=Request.QueryString[“field1”]
希望这有帮助 由于您是跨页面发布的,那么在页面加载方法中服务器控件可能不可用,因此我认为依赖ASP.NET控件命名的可预测性(就像您已经做过的那样)是您最好的选择。它不是草率的,但是控件名有点难看。我也想到了,但我认为它只在客户端有用,而不是在服务器端。
Label1.Text = PreviousPage.First_Name;