题
我失去了对MVC的校长一些基本的东西还是我要疯了?
如果我有一个显示的书籍列表和作者的列表视图,我要创造,将有书籍的作者为属性的列表,列表类。对?
我将随后强烈键入视图使用这个类。
现在我想创建一个相同的上市新的一页,但也有促销活动的列表。我是否需要创建另一个类图书财产清单,作者财产清单和促销财产清单?
如果我为人人,我创造了很多额外的工作地狱的意见创建类。我应该要创造每一种强类型的谐音?如果布局的每个时间不同?
目前我所使用的所有的视图,因为它包含一些共同的性质的BaseViewData类。不过,我现在努力让其他项目,而不完全腹胀BaseViewData类。
请有人可以帮助我了解的理论,一切简单的例子并不包括。
解决方案
我使用 ViewData的扩展方法一>通过 MvcContrib 是添加支持多种强类型模型(只要它们是不同的类型)。代码将它们添加到的ViewData看起来像这样:
User currentUser = GetCurrentUser();
List<Project> projectList = projectRepository.GetRecentProjects(currentUser);
ViewData.Add(user);
ViewData.Add(projectList);
代码在视图中拉出来看起来像这样:
User user = ViewData.Get<User>();
List<Project> projectList = ViewData.Get<List<Project>>();
此同时删除“魔术字符串”和类型转换。请注意,这并不与视图的Model属性做任何事情。
其他提示
创建一个容器类为你的系统永远对象,并使用所有视图 - 简单
使用空值的对象有没有真正的开销
我碰到了同样的问题。我想对于大多数人来说,一般的解决方案是创建一个包含图书和作者的模型,你真的想要一个容器类,而容器传递给你的视图。
次优,是的,但它的工作原理。希望这将在框架的未来版本来解决。
不隶属于 StackOverflow