asp.net 從靜態頁Post發送資料到服務端頁

來源:互聯網
上載者:User

今天在研究Post資料發送問題

要實現在 .html Post到.aspx頁

我在.html頁面寫下這些測試代碼

        <form action="Default2.aspx" method="post">
            <input id="TextBox1" type="text"  />
            <input id="Submit1" type="submit" value="submit" />
        </form>

在Default2.aspx.cs頁面中寫

Response.Write(Request.Form["TextBox1"].ToString());

 

怎麼也擷取不了.html頁面中的資料,

後來把.html改成.aspx的動態網頁,代碼不變,測試發現還是不行,

後來在HTML控制項中添加了runat="server",

    <form action="Default2.aspx" method="post">
        <input id="TextBox1" type="text" runat="server" />
        <input id="Submit1" type="submit" value="submit" />
    </form>

探索資料就能傳到Default2.aspx中了,

不刪除runat="server" 把頁面改回靜態頁,又不能傳送了。

網上找了很多代碼說,靜態頁發來的資料只能用Request.Files[]來擷取,

就在Default2.aspx.cs頁面中寫

Response.Write(Request.Files["TextBox1"].ToString());

還是不能擷取資料,

後來在萬般無奈之時分析加runat="server"的動態測試頁發現,

動態網頁發到用戶端會在標籤中加入name="TextBox1",

於是在靜態測試頁中直接加入name="TextBox1"

發現Default2.aspx.cs中可以擷取值了。

從中得出一結論,在ASP.NET中,POST傳值是根據name屬性來區分不同控制項的

Request.Form["TextBox1"]是在尋找表單中name="TextBox1"的控制項而不是ID="TextBox1"的控制項

 

 

//------------------------------------------

asp.net控制項<form >為什麼不能post到其他頁 ??

辦法:預設都是到當前頁,在action裡加也是沒用的,應該在form中加onsubmit="this.aciton='xxx.aspx'";注意取值的時候用Request

 

 

FORM裡套FORM當然不行。又想用VS的伺服器處理控制項,又想要POST,這是違背微軟的意願的。

並且在不帶runat=server的表單上不要使用<asp:imagebutton,只能用type=submit

<form runat=server action="xxx.aspx">

</form>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.