J'ai une page maître asp.net, et Tous mes contrôleurs héritent d'une base de contrôleur. Tous mes modèles de vue héritent de ViewBase. Comment puis-je avoir un ensemble de données de base dans la page maître qui est rempli à partir du contrôleur de base dans la base de vue, puis dans la page maître?Comment puis-je utiliser et remplir un modèle de vue de base dans une maquette?
1
A
Répondre
0
Ce que j'ai fait par le passé est utilisé ViewData pour remplir ma page maître.
l'intérieur de votre page maître vous pouvez mettre:
<% var baseModel = ViewData["baseModel"] as BaseViewModel; %>
puis
baseModel.xx
pour toutes les propriétés dont vous avez besoin tout au long de votre masterpage.
Dans mon ControllerBase, je substitue alors OnActionExecuting et popluate le viewData avec une instance de mon baseViewModel.
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
if (filterContext.Canceled || filterContext.Exception != null)
return;
var viewResult = filterContext.Result as ViewResult;
var viewModel = new BaseViewModel();
PopulateBaseViewModel(viewModel);
viewResult.ViewData["baseModel"] = viewModel;
}
double possible de [Comment créer une page maître fortement typé en utilisant un contrôleur de base dans ASP.NET MVC] (http://stackoverflow.com/questions/768236/how-to-create-a-strongly -typed-master-page-using-a-base-controller-dans-asp-net-mvc) - La dupe est la première question connexe dans la boîte qui apparaît quand vous en demandez une. – jfar