Come configurare smartphone e PC. Portale informativo
  • casa
  • Programmi
  • Codifica HTML e URL. Oggetti di sessione, applicazione e cache

Codifica HTML e URL. Oggetti di sessione, applicazione e cache

Il numero di posizioni in cui è possibile utilizzare o incontrare il segno @ in ASP.NET è cresciuto negli ultimi anni e il suo scopo esatto in tutte le circostanze sembra ancora creare confusione. Ecco una panoramica dei luoghi più comuni in cui si presenta e una guida al suo corretto utilizzo.

Sintassi del rasoio

Razor è stato lanciato come una nuova sintassi di template con l'introduzione del framework ASP.NET Web Pages. Un nuovo motore di visualizzazione è stato aggiunto a MVC 3 che utilizza Razor. Razor consente di combinare il codice lato server con il markup HTML per generare una risposta HTML che il framework invia al browser. Il segno @ ha quattro usi in Razor:

  • Per aprire un blocco di codice
  • Per indicare un'espressione o un'istruzione in linea
  • Per rendere il valore delle variabili
  • Per eseguire il rendering di singole righe di contenuto che contengono testo normale o tag HTML senza corrispondenza

I blocchi di codice sono sezioni di codice C# che non includono alcun output di cui eseguire il rendering. Solitamente sono posizionati nella parte superiore della pagina Web o della vista e in genere contengono la logica per l'elaborazione di una pagina in pagine Web o semplici istruzioni specifiche per la vista in MVC. Il blocco di codice inizia con il segno @ seguito da una parentesi graffa aperta e termina con una parentesi graffa chiusa:

@ (ViewBag.Title = "(! LANG: Modifica" ; Layout = !} "~ / Visualizzazioni / Condivise / _EditLayout.cshtml"; }

Il contenuto all'interno del blocco di codice è il codice C# standard. Un errore comune è anteporre le variabili dichiarate all'interno del blocco di codice con il segno @. Questo non è necessario.

Le espressioni o le istruzioni in linea sono frammenti di codice C# che appaiono all'interno dell'HTML. Molto spesso, questi vengono utilizzati per prendere decisioni su cosa visualizzare in base a condizioni o per iterare raccolte per la visualizzazione nel browser:

< ul >@ foreach (var voce in righe) (// fai qualcosa)

Le espressioni o le istruzioni nidificate non iniziano con il segno @...

< ul >@ foreach (var voce in righe) (if (item.Equals (x)) (// fai qualcosa))

A meno che non siano separati dall'espressione o dall'istruzione esterna da tag non corrispondenti

< ul >@ foreach (var voce in righe) (< li >@ if (item.Equals (x)) (// fai qualcosa) }

Il segno @ viene utilizzato in Razor per restituire il valore di variabili, espressioni e istruzioni al browser:

@ DateTime .Ora @ (qualche condizione? x: y)

Le variabili all'interno di espressioni e istruzioni non devono essere precedute dal segno @.

Se desideri eseguire il rendering di testo normale o tag non corrispondenti all'interno di un blocco di istruzioni, utilizza il segno @ seguito da due punti per dire a Razor che ciò che segue non è codice C #:

@ if (elemento == x) // testo normale (@: l'ora è @ DateTime .Now) @ if (elemento == x) // tag non corrispondenti (@:< ul >) altro (@:< ol > }

identificatori

Un identificatore in C# è il nome dato a uno spazio dei nomi, classe, variabile, proprietà, metodo, interfaccia ecc. Le regole governano ciò che rende un identificatore valido. È consentito utilizzare una parola chiave C # come identificatore, ma in tal caso è necessario utilizzare il segno @ per evitare errori in fase di compilazione. Ti sconsiglia di utilizzare una parola chiave come identificatore, ma ci sono momenti in cui non puoi evitare di farlo.

Alcuni overload delle classi HtmlHelper (Web Pages e MVC) accettano un oggetto per rappresentare gli attributi HTML di cui eseguire il rendering come parte del tag rappresentato dall'helper. L'esempio seguente aggiunge un attributo style a a l'immissione di testo e imposta il suo valore su width: 100%; :

@ Html.TextBoxFor (modello => nuovo (stile = "larghezza: 100%;"))

Quando fai questo, Siete creando un tipo anonimo con una proprietà chiamata style per rappresentare gli attributi HTML. Se vuoi impostare l'attributo della classe CSS tramite questo metodo, devi aggiungere una proprietà al tipo anonimo chiamato class, che è una parola chiave C #. Pertanto è necessario utilizzare il segno @ per abilitare l'uso della classe in questo caso:

@ Html.TextBoxFor (model => model.FirstName, htmlAttributes: nuovo (@class = "larghezza intera"))

Un errore che vedo ripetuto abbastanza spesso nei forum ASP.NET è quello di applicare il@ firmare a tutte le altre proprietà del tipo anonimo, che non è necessario. Alcune persone pensano addirittura che il segno @ usato qui faccia parte delle regole di sintassi di Razor. "Non lo è. It" qui ha preceduto Razor di molto.

Letterali delle stringhe letterali

Una stringa letterale letterale in C # è costituita dal segno @ seguito da una stringa letterale tra virgolette e terminata con un punto e virgola, ad es.

var s = @ "Ciao mondo";

Due vantaggi dell'utilizzo di una stringa letterale letterale includono il fatto che è necessario evitare solo le virgolette doppie (raddoppiandole); e il stringa può estendersi su più righe nel codice senza richiedere caratteri di continuazione. Per questi motivi, le stringhe letterali letterali sono più adatte per rappresentare percorsi (che altrimenti potrebbero richiedere l'escape delle barre) e modelli di espressioni regolari (che potrebbero anche richiedere l'escape delle barre rovesciate).

Regex re = nuova Regex ( @ "\ w \ d (1,3) \. \ d (1,3) \. \ d (1,3). \ d (1,3) \ w");

Sono anche utili per rappresentare grandi blocchi di testo se devono essere inclusi nel codice in modo leggibile, come le istruzioni SQL che potrebbero essere utilizzate nelle applicazioni delle pagine Web:

var sql = @ "SELECT p.ProductName, o.UnitPrice, o.Quantity, (o.UnitPrice * o.Quantity) - (o.UnitPrice * o.Quantity * o.Discount) As TotalCost FROM OrderDetails o INNER JOIN Products p ON o. ProductID = p.ProductID WHERE o.OrderID = @ 0 ";

L'uso del segno @ in questo contesto ancora una volta non ha nulla a che fare con la sintassi di Razor.

Riepilogo

Se ti sei mai chiesto quando e dove dovresti usare il segno @ nel tuo codice ASP.NET, si spera che questo articolo ti abbia aiutato a risolvere la tua confusione.

Il file ASP (Active Server Pages) è file di testo con l'estensione ".asp". Questo file può contenere:

  • dati di testo;
  • Tag HTML
  • script del server.

Per creare rapidamente un file ".asp", è sufficiente rinominare il file HTML modificando l'estensione ".htm" o ".html" in ".asp". Se il file non contiene funzionalità ASP, il server invia semplicemente in modo efficiente il file al computer dell'utente. Questa caratteristica fornisce un'ulteriore comodità per gli sviluppatori web che possono dare ai file l'estensione ".asp" anche se non intendono includere successivamente la funzionalità ASP.

Per pubblicare su Internet il file .asp appena creato, è necessario salvarlo nella directory virtuale del sito Web (quest'ultima deve disporre dell'autorizzazione Script o Esegui). Successivamente, puoi fare riferimento a questo file nella richiesta specificando il corrispondente indirizzo URL... (Ricorda che poiché le pagine ASP devono essere rese sul server, inserendo il percorso fisico del file ".asp" in in questo caso file, se visualizzato in un browser, è Pagina HTML... Questo ha un senso, poiché prima che il file venga inviato sul server, viene eseguito. analisi e tutti gli script del server ASP vengono eseguiti. Pertanto, gli utenti ottengono sempre file HTML regolari.

I file .Asp possono essere creati in qualsiasi editor di testo... Man mano che acquisisci esperienza, potrebbe essere più conveniente lavorare in editore speciale che include supporto ASP aggiuntivo, come Microsoft® Visual InterDev ™. (Per ulteriori informazioni, vedere il sito Web Microsoft Visual InterDev all'indirizzo http://msdn.microsoft.com/vinterdev/.)

Aggiunta di comandi allo script del server

Uno script lato server consiste in una sequenza di istruzioni che inviano comandi uno per uno al server web. (Gli sviluppatori di siti Web potrebbero avere familiarità con gli script lato client eseguiti in un browser Web.) I file ".Asp" utilizzano delimitatori per separare gli script dai dati di testo e dai comandi HTML. Separatoreè un carattere o una sequenza di caratteri che denota l'inizio o la fine di una sezione. Il linguaggio HTML utilizza i caratteri (<) и (>), tra i quali si trovano i tag HTML.

In ASP, i comandi di script sono delimitati<% и %>... I delimitatori possono contenere qualsiasi comando valido per il linguaggio di script in uso. Di seguito è riportato un esempio di una semplice pagina HTML con comandi di script.

Questa pagina è stata aggiornata l'ultima volta il<%= Now() %>.

Funzione VBScript Ora () ritorna data odierna E tempo. Durante l'elaborazione di questa pagina, il browser web sostituirà<%= Now() %>valori di data e ora correnti e restituirà la pagina al browser con il seguente risultato:

Questa pagina è stata aggiornata l'ultima volta il 29/01/99 14:20.

Vengono chiamati comandi delimitati squadre principali script e vengono elaborati utilizzando il linguaggio di scripting principale. Il comando all'interno dei delimitatori deve essere un comando valido del linguaggio di script dell'host. Per impostazione predefinita, il linguaggio di scripting principale è VBScript; puoi impostare un altro linguaggio di scripting predefinito. Vedere Lavorare con i linguaggi di scripting.

Gli sviluppatori front-end hanno familiarità con il tag HTML

Principali articoli correlati