我对ASP.NET MVC和MVC很新。从旧式的“意大利面”设计实践转向WebForms是一个很大的变化,但这在我看来似乎更大(但更好)。
我对数据特定任务有一些疑问。
我的问题是,我在哪里执行此数据查找。我可以在我执行插入新Entry对象的控制器中轻松完成,但是这样吗?是否应该以某种方式在模型中执行此查找?
此外,我遵循WROX的Professional ASP.NET MVC 1.0中概述的说明和实践。我已经创建了一个DataRepository类来处理我的所有数据库繁重的工作,并且正在使用该书中描述的验证类。
任何见解都会受到欢迎,因为我是MVC的真正新手。
干杯和谢谢堆叠器!
答案 0 :(得分:1)
看一下 ModelBinders 。这允许您定义如何将来自发送到操作的数据的输入绑定到Model对象。你的Action也可以只接受你想要保存的类型的参数,在ModelBinder中,你可以对存储库进行一些查找等。
如果您进行搜索,有很多好的博客文章,现在您知道要查看ModelBinder。 Scott Hanselman有一个很好的基础:
http://www.hanselman.com/blog/IPrincipalUserModelBinderInASPNETMVCForEasierTesting.aspx
答案 1 :(得分:0)
切勿在控制器中放置搜索,添加,更新,删除代码。实际上,控制器旁边应该没有代码。
在MVC领域,控制器只是一种从视图到业务层获取模型的方法,反之亦然。目标是尽可能少地编写代码。
如果您可以使用Linq2SQl,那么这将是放置实体的好地方。然后,您可以使用您的数据存储库,不仅可以执行繁重的操作,还可以执行其他所有操作。
Linq2SQL将创建一个分部类。因此,您可以创建另一个部分类,它将为您执行CRUD和搜索工作。