2010-07-02 92 views
0

我有一個簡單的html頁面和3個文本框。html方法=不將值傳遞給下一個aspx頁面

<form id="form1" method=get action="http://mysite.com/default.aspx" runat="server"> 
    <div> 
     <input id="name" type="text" value="Amy" /> 
     <input id="email" type="text" value="[email protected]"/> 
     <input id="phone" type="text" value="2125552512" /> 
    </div> 
    <input id="Submit1" type="submit" value="submit" /> 
</form> 

現在,當它加載default.aspx我有這個代碼在page_load的vb後端。

Dim tbName As TextBox = Page.FindControl("Name") 
Dim tbPhone As TextBox = Page.FindControl("Phone") 
Dim tbEmail As TextBox = Page.FindControl("Email") 
If page.request("name") & "" <> "" AndAlso tbname IsNot Nothing Then 
    tbname.text = page.request("name") 
End If 
If page.request("email") & "" <> "" AndAlso tbEmail IsNot Nothing Then 
    tbEmail.text = page.request("email") & "" 
end If 
If page.request("phone") & "" <> "" AndAlso tbphone IsNot Nothing Then 
    tbPhone.text = page.request("phone") & "" 
End If 

頁面加載但是這些文本框是空的。我究竟做錯了什麼?

+0

您的代碼示例在您的標籤上缺少幾個'<'。如果這真的是你的代碼的樣子,那將是一個很好的開始。 – 2010-07-02 18:52:49

+0

您如何閱讀有關http get和post方法差異的內容? http://www.cs.tut.fi/~jkorpela/forms/methods.html – epitka 2010-07-02 18:53:32

+0

「<」標記r缺少原因我在這裏刪除它們導致它不會讓我發佈的原因,他們在代碼中。 – redfer 2010-07-02 18:54:49

回答

0

它不是這樣的webform功能。

首先,你在你的表單輸入必須是服務器控制:前< asp:TextBox runat="server" id="name" Text="value" />

然後在您的代碼隱藏文件,你不必經過Page.FindControl("YourInput")但只有this.YourInput.Text

1

如果你希望能夠要在服務器端訪問這些控件,您需要爲它們中的每一個添加runat="server"屬性。

此外,您所引用的TextBox類型是您不使用的ASP.NET控件。一旦你添加runat="server"標籤,你會用什麼,是HtmlInputText

<asp:TextBox ID="name" runat="server" Value="Amy" /> 

如果你所有的ASP.NET頁面做的是處理從形式上的要求,再有就是:

您可以通過使用文本框ASP.NET控件,而不是<input>元素使用TextBox類型不需要引用任何文本框或輸入控件 - 這是不可能的,因爲它們不作爲ASP.NET控件存在。您只需從Request.QueryString中讀取值即可。

如果意圖是讓輸入在ASP.NET頁面上可見和/或可編輯,我建議將HTML表單移動到ASP.NET頁面中。

+0

爲什麼當我的頁面是.htm時,我會使用 redfer 2010-07-02 19:04:11

+0

好的,我誤解了。將更新我的問題。 – 2010-07-02 19:05:16

相關問題