2011-09-28 15 views
26

Sto usando ASP.NET.Recupero di dati da un metodo POST in ASP.NET

C'è un sistema che ha bisogno di dati POST sul mio sito e tutto quello che hanno chiesto è per me fornire loro un URL. Così ho dato loro il mio URL http://www.example.com/Test.aspx.

Ora non so esattamente come lo POST, ma ora sulla mia pagina Test.aspx ho bisogno di scrivere il codice che salverà quei dati in un database.

Ma come funzionerebbe e cosa devo fare sulla mia pagina Test.aspx?

Ho scritto del codice nel mio evento di caricamento della pagina che mi invia un'e-mail sul caricamento della pagina per vedere se effettivamente colpiscono la pagina e non sembra che siano pari?

risposta

24

È possibile ottenere un valore di modulo in una specifica pagina utilizzando il codice simile a questo (C#) -

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

o del presente (VB)

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

Una volta che hai i valori che avete bisogno può quindi costruire un'istruzione SQL e scrivere i dati in un database.

+0

Quindi txtFormValue sarà uno dei parametri che viene passato al mio URL? – Etienne

+0

Sì, sarà necessario modificare i nomi dei valori che si desidera verificare nella raccolta 'Request.Form' a seconda di ciò che è stato pubblicato. – ipr101

+0

Ma devo inserire questo codice nel mio evento PAGE LOAD? Carica anche la pagina quando si verifica un POST di quell'URL? – Etienne

0

È necessario esaminare (inserire un punto di interruzione su/Quick Watch) l'oggetto Request nel metodo Page_Load del file Test.aspx.cs.

29

I dati contenuti nella domanda (contenuto, ingressi, file, valori queryString) è tutto su questo oggetto HttpContext.Current.Request
Per leggere i contenuti inseriti

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

Per spostarsi nel tutti gli ingressi

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