Skip to main content

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.