如果我在通过帖子提交的表单中有一个文本框txtInfo
,如果我回发到该页面,我可以使用txtInfo.Text
读取在文本框中输入的值。如果我要发布到其他页面怎么办?我是否必须解析Request.Form
以取消控制名称(这就是我现在正在做的事情)或者我可以从那个混乱中获取它.net作为状态传递?
由于
感谢您到目前为止的答案......对不起,我应该更清楚一点。此控件是runat="server"
控件。这就是我现在降级的 - 不是很漂亮。
foreach (String key in page.Request.Form.AllKeys)
{
String[] controlName = key.Split('$');//remove that horrrible .net naming - thanks Bill.
keyName = controlName[controlName.Length - 1];//get the last value so we always have the name
keyValue = page.Request.Form[key];
if (keyValue != "")
{
switch (keyName)...
答案 0 :(得分:4)
你应该研究Cross Page Postbacks。
如本页所述,您可以使用以下内容轻松访问txtInfo:
if (Page.PreviousPage != null)
{
TextBox SourceTextBox =
(TextBox)Page.PreviousPage.FindControl("txtInfo");
if (SourceTextBox != null)
{
Label1.Text = SourceTextBox.Text;
}
}
答案 1 :(得分:3)
......有什么问题。
string txtInfo = Request.Form["txtInfo"];
if(txtInfo == null) txtInfo = "";
答案 2 :(得分:0)
一个简单的解决方案是使用简单的<input type="text">
而不是<asp:TextBox>
。为其提供name
属性,然后通过Request.Form
访问它。
.aspx文件:
<input type="text" name="foo" />
发布 - 代码隐藏(同一页面,不同页面,无关紧要):
var text = Request.Form["foo"];