Je ne sais pas comment utiliser la page maître dynamique dans ASP.NET MVC RC 1.0. S'il vous plaît aider!Comment utiliser la page maître dynamique dans ASP.NET MVC RC 1.0
Répondre
Il existe une solution raisonnablement maintenable discutée sur http://forums.asp.net/p/1394235/2991293.aspx où vous créez un descendant principal de site commun et l'utilisez pour toutes vos propres vues. Il y a aussi une entrée CodeProject qui semble intéressante et qui utilise un ViewEngine personnalisé à http://www.codeproject.com/KB/aspnet/ASPNETMVCDynamicThemes.aspx.
J'ai besoin de faire cela aussi, mais je n'ai encore essayé aucune solution, donc je n'ai pas encore de feeling pour ce qui est globalement meilleur. IMO, skinning dynamique est une fonctionnalité cruciale pour MVC, en particulier pour répondre à la personnalisation de l'utilisateur.
Est-ce que l'habillage dynamique n'est pas appelé 'CSS'? :-D –
George, CSS en ferait partie, mais les vues personnalisées ou personnalisées pourraient certainement dépasser ce que CSS peut offrir. –
Vous pouvez spécifier le nom de la page principale lors de l'utilisation de la méthode d'assistance View():
return View("About", "AlternateMaster", model);
AlternateMaster résoudrait à ~/Vues/Shared/AlternateMaster.master
J'ai obtenu ceci pour travailler en créant un contrôleur de base qui a manipulé l'événement OnActionExecuted. Dans le OnActionExecutedevent j'affecte la page maître. Ensuite, j'ai fait hériter tous mes autres contrôleurs de la classe de base.
public class BaseController : Controller
{
protected override void OnActionExecuted(ActionExecutedContext filterContext) {
var action = filterContext.Result as ViewResult;
if (action != null) {
action.MasterName = MyApp.Properties.Settings.Default.Theme;
}
base.OnActionExecuted(filterContext);
}
}
I wrote a post about this si vous voulez plus de détails
Maintenant, cela fonctionne très bien, mais si vous utilisez des actions enfants échouera, car il sera également définir la page maître sur l'action enfant! – Androme
Bienvenue sur SO! Votre question est trop générale. Si vous rencontrez un problème spécifique, veuillez modifier votre question et inclure autant de détails que possible. –