从另一个页面发布页面读取值的最佳方法是什么?我有一些有用的东西,但看起来很草率。
我正在处理多页表单,第一页使用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的值作为字符串获取。似乎我尝试的任何事都会导致错误。
答案 0 :(得分:0)
请仔细阅读以下文章,其中包含您需要的所有信息。
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”];
希望这有帮助!