ASP.NET MVC Preview 4 : Support d'ajax

Depuis ce 16 juillet 2008, la nouvelle version d'ASP.NET MVC Preview 4 est disponible en test. Il y a quelques nouveautés intéressantes .... Je passerai ici les actions disponible pour l'authentification... En effet, il était possible de le réaliser simplement via l'attribut ActionFilterAttribute dont je vous ai parlé il y a quelques temps ...
Les sujets de ce soir seront l'ajout d'ajax! (Il était temps ;-)) et les changements pour l'attribut ActionFilter.
Voici comment il est possible simplement de mettre en place Ajax sous ASP.NET MVC Preview 4. Le but de cette manipulation est en Ajax d'insérer le texte qui sera encodé manuellement ...


  • Ajout des scripts en référence dans la master page
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title><%= Html.Encode(ViewData["Title"]) %></title>
    <link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
    <script src="../../Content/MicrosoftAjax.js" type="text/javascript"></script>
    <script src="../../Content/MicrosoftMvcAjax.debug.js" type="text/javascript"></script>
    </head>
  • Implémentation des deux actions dans le controlleur
    using System;
    using System.Web.Mvc;
    namespace MvcApplication1.Controllers
    {
    public class PloufController : Controller
    {
    public ActionResult Index()
    { return View(); }

    public string About(string message)
    {
    return string.Format("{0} => {1}",
    DateTime.Now.ToShortTimeString(), message);
    }
    }
    }
  • Implémentation de la page UI
  • <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true"
    CodeBehind="Index.aspx.cs" Inherits="MvcApplication1.Views.Plouf.Index" %>
    <asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
    <p>
    <%using (Ajax.Form("About", new AjaxOptions
    {
    InsertionMode = InsertionMode.InsertAfter,
    UpdateTargetId = "resultat"
    }))
    { %>
    <%= Html.TextBox("message")%>
    <input type="submit" value="Parle !" />
    <% } %>
    </p>
    <div id="resultat" />
    </asp:Content>
  • Conclusion
  • Comme vous pouvez le voir, il est très simple d'ajouter le support d'Ajax dans les pages ASP.NET. Il n'y a pas beaucoup de différence entre mes différents posts sur le couplage asp.net MVC + prototype ... Mais avec le support Ajax de base, on a la possibilité de masquer le code js via des helpers c#...

Remarque :

Le dernier petit point que j'aimerais aborder dans ce post est le changement d'héritage de l'attribut ActionFilterAttribute. Cette classe n'hérite plus de la classe Attribute mais bien de FilterAttribute. De même, une nouvelle interface plus parlante est apparue ... IResultFilter. Celle-ci récupère deux méthodes qui se trouvaient précédement dans IActionFilter... Ce déplacement de code me semble très judicieux. Vivement les prochaines releases d' ASP.NET MVC !!

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Fil des commentaires de ce billet

Page top