我们正在使用 ASP.NET MVC 开发一个相当大的应用程序,一开始我们发现拥有一个具有常见 CRUD 操作(新建、保存、删除...)以及默认列表操作的抽象基本控制器可能很有用。在我们的例子中,我们有 20 多个实体通过这种控制器进行管理。
这有效并避免了重复一些代码并使应用程序更加同构,但是当您看到控制器时很难准确地看到它实现了哪些操作,并且它可能实现了一些不应该存在的操作。例如,假设您想要编辑传递名称而不是 id,则必须创建一个新的 EditByName(name),即使这样做,您仍然可以使用 Edit(id) 操作,因为它位于基础中。
对我来说,整个事情对我来说有点味道,但我没有找到任何显示替代方案的示例,因为我看到的 MVC 应用程序的领域非常狭窄。有什么建议吗?有什么例子吗?(我不一定使用 ASP.NET MVC,我认为这个问题对于任何 MVC 框架来说都是非常普遍的)。
我正在研究.NET MVC WEB应用程序的设计,并确定我必须管理33个表(到目前为止).通过管理我的意思是典型的SQL操作(插入,更新,删除和查询)
这33个表中有16个是需要使用典型CRUD方法处理的参考表.参考表我指的是其他表引用并在组合中使用的表(即国家,州,城市,货币等)
我对.NET中的MVC很新,但是看到当你使用脚手架时,你会得到具有典型方法的控制器:
同样在数据库方面,我计划使用典型的DAO,使用EntityFramework实现INSERT,UPDATE,DELETE和LIST(查询操作)
这是我的问题(最后;-)
由于50%的表格将以相同的方式在视觉和功能上进行管理并提供相同的CRUD操作,因此我可以使用哪种模式或方法来实现最佳的代码/视图重用?.
我想避免的是脚手架16个实体获得16个控制器,每个控制器有16*5个视图(创建,删除,细节,编辑和索引)
是否有可能Single Main controller路由或管理所有这16个实体并调用实体所需的操作?
是否可以使用一组足够通用的视图(创建,删除,详细信息,编辑和索引)来处理相同的16个实体?
如果以上两个是可能的,我将如何在Web项目的配置中连接路由,以便仍然能够为这16个实体中的每一个具有特定的URL(/ Countries/Edit/5,/ States/Edit/5和那么)?
这是我认为我可以实现这一目标的一种方式:
请帮助我验证/完成我的设计草案,并提出一些警告或更好的方法来实现这一目标.
只是提供一些上下文是一个链接的脚手架EntitieFramework实体与MVC项目https://code.msdn.microsoft.com/MVC5-Demo-with-Entity-c6bc81df approch
这是一个非常相似的问题,我想在确定如何实现这一目标之前验证.