Qual è la collezione forma in asp.net/html?
-
09-10-2019 - |
Domanda
Domanda semplice, ma una necessità ho chiarire per me stesso. In termini di collezioni che si può accedere nell'oggetto richiesta c'è:
Cookies: (whats in a text file in the browser)
Querystring: (whats passed in the url like [key=value&key=value etc])
Server Variables: ?
Form Variables: ?
Quelli con la? accanto sono quelli che io veramente non capisco dove nel http packet / html vengono collocate. Ho fatto una cattura con wireshark:
POST /Security/HelixSessionAuth.aspx HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 391
ClientIP=192.168.20.31
Url=%2Fflash%2F56553550%5Fhi%2Emp4
Log=SESSIONSTART%20%5B13%2FDec%2F2010%3A16%3A31%3A23%20%2B0000%5D%20%20flash%2F56553550%5Fhi%2Emp4%200%20192%2E168%2E20%2E31%203%20%5B13%2FDec%2F2010%3A16%3A31%3A23%20%2B0000%5D%200%200%200%20%5B0%20No%20Error%5D%20%5B0%20No%20Error%5D%20%5Brtmp%3A%2F%2Fhelix%2Epete%2Evideolibraryserver%2Ecom%2Fflash%2F56553550%5Fhi%2Emp4%5D%0A
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Mon, 13 Dec 2010 16:31:23 GMT
Connection: close
Content-Length: 315
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Not Found</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Not Found</h2>
<hr><p>HTTP Error 404. The requested resource is not found.</p>
</BODY></HTML>
Dove abouts sarebbero stati nel feed di cui sopra?
Soluzione
La collezione Form è l'elenco dei controlli nella pagina che sono passati alla pagina di azione tramite il metodo POST. Querystring è un GET, POST aggiunge elementi alla collection Form. Se si conosce il nome del controllo nel post, è possibile accedere il suo valore nella pagina dell'azione utilizzando:
Request.Form("myControl")
In Net moduli web, questo è un po 'più complicato, perché Net inietta una specializzata ClientID per preservare l'ID del controllo effettivo nel codice dietro.
Il server di raccolta è un insieme di variabili del server comuni che identificano le informazioni sul client, server, collegamento, il browser, ecc Un elenco completo può essere trovato qui:
https://msdn.microsoft. com / it-it / library / ms524602 (v = VS.90) aspx
Altri suggerimenti
Wireshark per questo è un po 'di una mazza da crack-a-nut, io suggerirei di iniziare con il documentazione MSDN per HttpRequest . Questo dovrebbe aiutare a capire ciò che la forma e le collezioni Server sono e cosa rappresentano, allora saprete che cosa state cercando nel pacchetto di dati reali.
In primo luogo circa il vostro strumento. WireShark
è uno strumento di analisi dei pacchetti a basso livello che non è necessario per l'apprendimento di concetti HTTP. Invece utilizzare Fiddler .
ServerVariables:
Questo è un vecchio oggetto da ASP classico. Ora ci sono molti alias per i loro oggetti. Per esempio Request.UserHostAddress
è un alias per Request.ServerVariables("remote_addr")
.
Inoltre Headers
, Cookies
, oggetti Session
, ... sono disponibili da questo oggetto. Questo oggetto è più là di compatibilità all'indietro.
variabili formato:
Tutti i comandi in ASP.NET sono tracciati con un ID da ASP.NET e il loro stato è attesa entro il campo ViewState
nascosto. lo stato di visualizzazione, è la tecnica utilizzata da una pagina ASP.NET Web a persistere le modifiche allo stato di un Web Form attraverso PostBacks
.
Quindi, in ogni PostBack
(modulo di posta, cioè fare clic su un pulsante) ASP.NET lato server sarebbe ripopolare oggetto form e dei suoi figli (controlli all'interno del modulo) da dati successivi. Ecco che noi chiamiamo la raccolta modulo.