using System; using System.Collections.Generic; using System.Linq; using System.Web.Mvc; namespace Exemple_04.Infrastructure { public class SessionModelBinder:IModelBinder {/*la classe implémente l'interface [IModelBinder]. Pour comprendre son code, il faut savoir qu'elle sera appelée à chaque fois qu'une action aura un paramètre de type [SessionModel]. * Cette liaison [SessionModel] -->[SessionModelBinder] sera faite au démarrage de l'application, dans la méthode [Application_Start] de [Global.asax] ;*/ /*le paramètre de type [ControllerContext] nous donne accès à la requête HTTP en cours de traitement ; le paramètre de type [ModelBindingContext] nous donne accès à des informations sur le modèle à construire, ici le type [SessionModel] ;*/ public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { // on recupère les données de portée [Session] return controllerContext.HttpContext.Session["data"]; } } }