在MVC3.0中我使用了一个母版页,母版页中需要读取菜单数据,但母版页没有对应的Controllers,
那我怎么给母版页传数据,需要传给母版页的是个泛型集合
两种方案:
1、用ViewBag传递。把菜单数据放在ViewBag中,在母版页中读取ViewBag。
2、用Html.Partial("菜单视图")。把菜单用一个单独的视图(即页面)存放,然手在母版页中用Html.Partial("菜单视图")读取菜单。
推荐用第2种
Html.Partial("菜单视图") 里面传参是不走控制器的。
比如你的模板页叫Site.Master, 然后你写一个SiteController, 里面有个方法叫 BuildMasterModel,这个方法里去构造模板页需要的数据模型。然后所有引用Site.Master的页面的Controller都继承自SiteController。这样的话逻辑集中,并且坚持了DRY原则,便于维护。