我正在开发MVC 5中的网页,并且现在已经在MVC中开发了很长时间。
我总是尝试/想要学习编程技巧的新方法/最佳实践。现在我只是偶然发现了ViewModels。
例如,我在多个页面中使用相同的ViewModel,其中我有“词典”属性来填充下拉列表。
通常我所做的就是在控制器中创建一个私有方法,例如" SetupViewModel"然后将字典填充到那里的模型属性,并在模型构造函数中填充" failsafe"创建一个空字典。
但对于我现在正在研究的这个项目,我认为我会尝试直接在模型构造函数中调用我的服务方法,该方法返回ddl的列表,然后在那里填充它。
这样做有什么优点或缺点。你会说最佳做法是什么?因为我可以看到一些问题,例如,如果数据库出现故障,我仍然可以加载带有空值的页面,如果我在控制器中有" setupViewModel" - 方法,并且有一些try / catch或者某些东西可以防止崩溃如果它在VM中,如果我不在服务中添加一些故障安全,如果我无法从数据库中获取任何内容,则会直接崩溃。
所以它在同一个地方有很大的发展,但是在不同的地方(我可以在服务中一直保持一些安全保障)。
但主要问题是,什么是最佳实践,从模型或控制器填充模型属性?
答案 0 :(得分:0)
在MVC中,我个人认为访问数据层是一个模型问题。控制器应该尽可能少。理想情况下,我会在构造函数中首先将字典初始化为空字典,然后在try..catch(在错误中什么都不做)获取字典的数据库值并再次设置它。