Skip to main content

ASP.NET – Come usare le CSS Media Query dentro le viste cshtml Razor

Se lavorate in ASP.NET MVC o ASP.NET Core implementando le vostre views con Razor e vi capita di inserire gli stili CSS all’interno della vostra pagina, potreste trovarvi prima o poi faccia a faccia con uno dei seguenti errori di compilazione:

CS0103: The name ‘media’ does not exist in the current context.

CS0103: The name ‘if’ does not exist in the current context.

… E via dicendo.

Nella maggior parte dei casi questo tipo di errori è dovuto al fatto che avete utilizzato una CSS media query (o altra istruzione CSS3 analoga) come ad esempio la seguente:

(altro…)

 

Estensione Url.Action in C# per gestire Route multi-language con ASP.NET MVC

Come promesso in questa guida – e richiesto a gran voce dai nostri lettori – pubblichiamo un Extension Method che consente di utilizzare il metodo helper Url.Action all’interno di una View in Razor specificando, in aggiunta ai consueti parametri, un oggetto CultureInfo che verrà utilizzato internamente per costruire una URL localizzata. Ovviamente, affinché la URL venga correttamente gestita dalla nostra applicazione, sarà necessario implementare una Route con supporto multi-language come quella pubblicata in questo post.

(altro…)

 

ASP.NET MVC – Aggiungere uno o più percorsi di ricerca predefiniti per le View

Una delle cose maggiormente apprezzabili del modello di sviluppo MVC (se non sapete cos’è, leggete qui) è l’importanza data all’organizzazione del codice: la separazione logica dei tre aspetti di cui si compone l’applicazione si concretizza all’interno delle directory del progetto: in particolare, visto che il Model è spesso delegato a librerie esterne e relativi abstraction layers, alle cartelle /Controllers/ e /Views/, che ospitano rispettivamente gli input handler e la user interface dell’applicazione.

Tra queste, la cartella /Views/ riveste una particolare importanza a livello di filesystem in quanto viene utilizzata dal View Engine per reperire automaticamente le viste richiamate dai nostri Controller. Questa ricerca viene effettuata attraverso un insieme di percorsi di ricerca predefiniti che costituiscono il cosiddetto default location scheme. Si tratta in buona sostanza di un elenco di pattern di ricerca relativi a percorsi locali. Quella che segue è la parte del default location scheme del Razor View Engine relativa alle normali View:

(altro…)

 

ASP.NET – MantainScrollPositionOnPostback su Chrome e altri browser

Mantenere (o per meglio dire, ripristinare) la posizione della scrollbar della pagina in conseguenza di un postback è una funzionalità indispensabile per qualsiasi pagina contenente un form. Per anni in ASP.NET è stato possibile ottenere questo effetto aggiungendo un semplice parametro nella propria pagina/WebForm/MasterPage:

A livello di web.config<pages maintainScrollPositionOnPostBack="true" />

A livello di pagina<%@ Page MaintainScrollPositionOnPostback="true" %>

A livello di codicePage.MaintainScrollPositionOnPostBack = true;

Sfortunatamente questi metodi, oltre a non essere disponibili con Razor, non sono più compatibili con la maggior parte dei browser recenti. Nonostante ASP.NET consenta ancora, tramite i Browser Definition File, la possibilità di impostare funzionalità specifiche per ciascuno di essi, è senz’altro preferibile adottare una soluzione pienamente compatibile con l’aiuto di un semplice script basato sul framework jQuery.

Questa è la soluzione specifica per WinForms:

Mentre questa è quella pensata per Razor (nonché per qualsiasi altra pagina web):

Inutile dire che, in entrambi i casi, l’elemento input iniziale (asp:HiddenField nella versione WinForms) va inserito all’interno dell’elemento form su cui viene eseguito il Postback.