Obtenga datos de POST en C # / ASP.NET

Estoy tratando de obtener datos POST, pero no tengo suerte. Mi código está abajo. Cuando hago clic en el botón de formulario, no pasa nada.

Esperaba que al menos mi IDE se A.Ret() en A.Ret() , pero nada sucede en absoluto.

Archivo Test.cs

 using System.Web; public class A { public static string ret() { var c = HttpContext.Current; var v = c.Request.QueryString; // <-- I can see get data in this return c.Request.UserAgent.ToString(); return c.Request.UserHostAddress.ToString(); return "woot"; } } 

Archivo Default.aspx

     Untitled Page   
a

Intenta usar:

 string ap = c.Request["AP"]; 

Eso se lee de las cookies, formulario, cadena de consulta o variables del servidor.

Alternativamente:

 string ap = c.Request.Form["AP"]; 

solo leer de los datos del formulario.

c.Request["AP"] leerá los valores publicados. También necesita usar un botón de enviar para publicar el formulario:

  

en lugar de

  

Estoy un poco sorprendido de que esta pregunta haya sido hecha tantas veces antes, pero la solución más reutilizable y amigable no ha sido documentada.

A menudo tengo páginas web que usan AngularJS, y cuando hago clic en el botón Guardar, “PUBLICO” esta información en mi página .aspx o .ashx para guardarla en la base de datos. Los datos estarán en forma de un registro JSON.

En el servidor, para convertir los datos publicados sin procesar en una clase C #, esto es lo que haría.

Primero, defina una clase C # que contendrá los datos publicados.

Supongamos que mi página web está publicando datos JSON como este:

 { "UserID" : 1, "FirstName" : "Mike", "LastName" : "Mike", "Address1" : "10 Really Street", "Address2" : "London" } 

Entonces definiría una clase C # como esta …

 public class JSONRequest { public int UserID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Address1 { get; set; } public string Address2 { get; set; } } 

(Estas clases pueden anidarse, pero la estructura debe coincidir con el formato de los datos JSON. Por lo tanto, si publica un registro de usuario JSON, con una lista de registros de pedidos dentro de él, su clase C # también debe contener una List<> de los registros de pedidos).

Ahora, en mi archivo .aspx.cs o .ashx, solo necesito hacer esto y dejar JSON.Net para hacer el trabajo …

  protected void Page_Load(object sender, EventArgs e) { string jsonString = ""; HttpContext.Current.Request.InputStream.Position = 0; using (StreamReader inputStream = new StreamReader(this.Request.InputStream)) { jsonString = inputStream.ReadToEnd(); } JSONRequest oneQuestion = JsonConvert.DeserializeObject(jsonString); 

Y eso es. Ahora tiene una clase JSONRequest contiene los diversos campos que fueron POSTed a su servidor.

Lo siguiente está bien en HTML4, pero no en XHTML. Verifica tu editor.