Uno dei maggiori svantaggi di ASP.Net MVC consiste nel dover scrivere manualmente tutto il codice HTML, operazione che può diventare estremamente pesante e complessa nel caso di viste con molti elementi.
Per venire incontro agli sviluppatori e facilitare la scrittura del codice sono state incluse all'interno del framework MVC tre classi che realizzano il meccanismo degli Helper, molto diffuso nella filosofia MVC:
System.Web.Mvc.HtmlHelper
System.Web.Mvc.UrlHelper
System.Web.Mvc.AjaxHelper
Queste classi forniscono metodi che restituiscono frammenti di HTML e JavaScript evitandoci di scrivere tutto manualmente. Lo sviluppatore ha accesso a queste classi attraverso le tre proprietà della viste (gli helper appunto) Html, Url e Ajax.
Nelle prossime lezioni ci occuperemo dei principali helper inclusi in ASP.Net MVC per poi trattare la creazione di helper personalizzati, molto utili per creare frammenti dinamici di codice utilizzabili su più pagine.
I link
L'helper Html fornisce molti metodi utili a velocizzare la scrittura del codice. Uno dei più importanti è sicuramente ActionLink, che crea un link a partire dal nome dell'azione di un controller:
<%= Html.ActionLink("Home Page", "Index") %>
<!-- Risultato:
<a href="/">Home Page</a>
-->
Abbiamo già incontrato questo metodo nella vista Index
del controller GalleryController
:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> ... <%-- Corpo della pagina --%> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> ... <p><%= Html.ActionLink("Aggiungi immagine", "Create") %></p> ... </asp:Content>
ActionLink
ha moltissimi overload che coprono la maggior parte degli usi possibili dei link. Per una lista completa vi rimando alla documentazione ufficiale.