这是一个反复讨论的主题,我仍不满意所有部分如何组合在一起:ViewPage/ViewMasterPage,ViewPage.Model,等等。将强类型数据传递给ViewMasterPage和ViewPage
我已经输入了模型数据必须传递给MasterPage和ViewPage的承诺。传递的数据不需要在MasterPage和ViewPage之间共享,以防万一。
我结束了像一个黑客位在职的感觉解决方案:使用ViewMasterPage.Model
的MasterViewPage访问其数据:1.我抽象控制器和推翻的OnActionExecuted方法
protected override void OnActionExecuted(ActionExecutedContext filterContext) { ViewData.Model = new CPanelViewData() { Errors = Errors, Warnings = Warnings, Notifications = Notifications }; base.OnActionExecuted(filterContext); }
2.我用的是Controller.View(字符串的viewName,对象模型)在我的操作方法:的ViewPage是由通用的,也就是说的ViewPage < FileManagerViewPage>
public class FileManagerControlPanelController : CPanelController
{
private FileManagerViewPage viewPage = new FileManagerViewPage();
public ActionResult AddFolder(string name, string path) {
...
...
return View("Index", viewPage);
}
之所以这么说,我不知道如果这个解决方案是合法的。有没有更好的方式将模型数据提供给MasterPage和View?