1
3
在我的MVC应用程序中,我使用的是Rob Conery在其MVC店面视频系列中展示的架构,它对我来说就像魅力一样。 存储库=>服务+筛选器=>控制器=>视图 我试着模拟你想要达到的目标,然后像这样做 编辑1 :在存储库和筛选器中将ilist更改为iqueryable 知识库
获取您想要的服务
过滤您的故事和用户投票的过滤器(这些基本上是扩展方法)。不是最好的实现,但是您可以稍后重写
然后你可以在控制器中传递当前的用户ID,而不是像以前那样在DAL或视图中传递。
这允许您远离将与用户相关的uservotedon属性添加到您的故事模型中。 |
2
1
你好像错过了BLL。 事实上,MVC应用程序的正确体系结构正是许多人仍在努力解决的问题。 我个人认为userid有点像是一个跨层的概念。它将同时出现在DAL和BLL级别。 基本上,您的控制器方法应该只对BLL进行一些非常基本的调用,只是为了确定如何对用户输入做出反应,是返回视图还是其他视图。 您的视图应该只处理模型对象。模型应该由业务逻辑填充。可以在控制器方法中调用bl方法,以便初始化模型对象,然后将其传递给视图。 控制器不应直接与数据库通信。它也不应该处理包含域对象和模型的低级对象。 另外,我会尽量避免大量使用viewdata。强类型模型类是更好的选择。您还可以将它们分组在层次结构中以继承一些公共属性。就像域模型类可以从定义了userid属性的基类派生一样。 |
Haim Ohayon · 这些链接之间有什么区别? 2 年前 |