2011-09-28 29 views
26

我正在使用ASP.NET。從ASP.NET中的POST方法中檢索數據

有一個系統需要POST數據到我的網站,他們要求的所有內容都是爲我提供一個URL。 所以我給他們我的網址http://www.example.com/Test.aspx

現在我不知道他們是如何發佈它,但現在我的Test.aspx頁面上,我需要編寫的代碼,將數據保存到數據庫。

但是,這將如何工作,我必須在我的Test.aspx頁面上做什麼?

我在頁面加載事件中寫了一些代碼,在頁面加載中向我發送一封電子郵件,看看它們是否真的觸及了頁面,它看起來不像是甚至?

回答

24

你可以使用代碼類同此(C#)發佈到頁面的表單值 -

string formValue; 
if (!string.IsNullOrEmpty(Request.Form["txtFormValue"])) 
{ 
    formValue= Request.Form["txtFormValue"]; 
} 

或本(VB)

Dim formValue As String 
If Not String.IsNullOrEmpty(Request.Form("txtFormValue")) Then 
    formValue = Request.Form("txtFormValue") 
End If 

一旦你的價值,你需要你然後可以構造一個SQL語句並將數據寫入數據庫。

+0

所以txtFormValue將被傳遞到我的URL的參數之一? – Etienne

+0

是的,它會 - 您需要調整您在Request.Form集合中檢查的值的名稱,具體取決於發佈給您的內容。 – ipr101

+0

但是我必須將這段代碼放在我的PAGE LOAD事件中嗎?它是否會在POST發送到該URL時加載頁面? – Etienne

0

您需要檢查Test.aspx.cs文件的Page_Load方法中的Request對象(將斷點放在/快速監視上)。

29

從請求(內容,輸入,文件,查詢字符串的值)中的數據是所有這些對象上HttpContext.Current.Request
要閱讀所張貼的內容

StreamReader reader = new StreamReader(HttpContext.Current.Request.InputStream); 
string requestFromPost = reader.ReadToEnd(); 

要通過導航所有輸入

foreach (string key in HttpContext.Current.Request.Form.AllKeys) 
{ 
    string value = HttpContext.Current.Request.Form[key]; 
}