我失去了对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属性做任何事情。

其他提示

创建一个容器类为你的系统永远对象,并使用所有视图 - 简单

使用空值的对象有没有真正的开销

我碰到了同样的问题。我想对于大多数人来说,一般的解决方案是创建一个包含图书和作者的模型,你真的想要一个容器类,而容器传递给你的视图。

次优,是的,但它的工作原理。希望这将在框架的未来版本来解决。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top