Ottenere dati di POST in C#/ASP.NET

Sto cercando di ottenere dati di POST, ma sto avendo alcuna fortuna. Il mio codice è sotto. Quando faccio clic sul pulsante modulo non succede nulla.

Mi aspettavo almeno il mio IDE di scatto alla A.Ret(), ma non succede niente di sorta.

File Di Prova.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";
    }
}

File Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="aspnetCSone._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
    </head>

    <body>
        <form id="form1" runat="server" method="post" action="Default.aspx">
            <input type=hidden name="AP" value="99" />
            <input type=button value="Submit" />
            <div>
                <a id="aa">a</a>
                <% = A.ret() %>
            </div>
        </form>
    </body>
</html>
  • Io non sono sicuro di seguire… Dove stai cercando di ottenere dati POST?
  • Questo codice non ha senso. Cosa stai cercando di realizzare?
  • Non cercare di ottenere i dati POST, contrassegnare il controllo come runat=”server” e quindi ottenere il valore in questo modo.
  • rball: Come faccio ad ottenere il valore di ‘quel’ modo? Io sono un totale newbie. Blixt: Il modulo dovrebbe essere la Pubblicazione di dati quando faccio clic su invia. Come si fa in PHP e tutto il codice HTML che ho fatto prima di oggi.
InformationsquelleAutor | 2009-06-10

 

4 Replies
  1. 43

    Provare a utilizzare:

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

    Che legge il cookie, la forma, la stringa di query o variabili del server.

    In alternativa:

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

    a leggere i dati del modulo.

  2. 32

    c.Request["AP"] di leggere valori registrati. Inoltre, è necessario utilizzare un pulsante invia per inviare il form:

    <input type="submit" value="Submit" />

    invece di

    <input type=button value="Submit" />
    • Questo è quello che ho fatto di male! grazie.
    • Mi rendo conto che questo è un modo vecchio, ma mi ha aiutato troppo… anche se stavo usando VB… ‘Dim sku As String = Request(“sku”)’… grazie!
    • Probabilmente dovrebbe aggiungere <button type="submit">Submit</button> pure..
  3. 2

    Io sono un po ‘ sorpreso che questa domanda è stato chiesto tante volte prima, ma più riutilizzabili e soluzione amichevole non è stato documentato.

    Mi capita spesso di avere le pagine web utilizzando AngularJS, e quando clicco su un pulsante Salva, io “POST” questo dato indietro la mia .pagina aspx o .ashx gestore per salvare questo database. I dati saranno nella forma di un JSON record.

    Sul server, per girare il raw inviato dati in una classe C#, ecco cosa vorrei fare.

    In primo luogo, definire una classe C# che conterrà i dati pubblicati.

    Supponendo che la mia pagina è la pubblicazione di dati in formato JSON come questo:

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

    Poi mi piacerebbe definire una classe C# come questo…

    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; }
    }

    (Queste classi possono essere nidificati, ma la struttura deve corrispondere al formato dei dati in formato JSON. Così, se pubblichi un JSON record Utente, con un elenco di record di Ordine interno, C# classe deve contenere anche una List<> di Ordinare i record).

    Ora, nel mio .aspx.cs o .file ashx, ho solo bisogno di fare questo, e lasciare JSON.Net il duro lavoro…

        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<JSONRequest>(jsonString);

    E basta. Si dispone ora di un JSONRequest classe contenente i vari campi che sono stati inviati al server.

  4. 0

    Il seguente è OK in HTML4, ma non in XHTML. Controllare il vostro editor.

    <input type=button value="Submit" />

Lascia un commento