<div class='blogListing'> @HTML.Partial("BlogListing",new BlogListingviewmodel(10));</div>
对我来说,最佳做法是在viewmodel中实例化所有模型,然后将它们传递给部分模型.在下面的示例中,BlogHomeviewmodel将创建一个新的BlogListingviewmodel(10)并将其设置为要使用的VIEw的公共属性:
@Model BlogHomeviewmodel<div class='blogListing'> @HTML.Partial("BlogListing",Model.BlogListing);</div>
我的问题是,这不仅仅是一个糟糕的做法/维护问题吗?从VIEw中访问数据库是否还存在性能问题?我认为模型几乎可以同时触发所有数据库请求,但在VIEw中你已经开始渲染HTML,因此必须打开和关闭更多连接,减慢页面加载速度.我在这里偏离基地吗?
解决方法 与往常一样,为程序员提供服务的方法不止一种.这就是那句话,对吗?多年前,当我第一次开始使用MVC框架时,我一直试图找出每个字母应该负责的黄金标准.有很多意见,但最终由您和您的团队决定哪些适合您.
我认为在视图或模型中连接到数据库是不好的做法.有些人在他们的模型中打开连接以获取数据.不是我.当我想到一个模型对它的简单负责时:
>最终将在UI中显示的数据
>正确构建UI所需的数据(例如,有条件地显示某些选项的bool)
我会经常将我的模型称为“自给自足”.这意味着我的模型需要在到达视图时获得所需的所有数据.我让我的控制器处理数据库连接,API调用,LDAP查询等.显然我的控制器不包含这些方法的所有代码(我有适当的专用库来处理不同的需求),但是,它是不同数据源之间的代理.
以这种方式构建应用程序的好处是,您可以确定何时完成繁重的工作.您知道当您调用返回视图(模型)时,您拥有所需的所有数据.您不必从模型或视图中解决错误查询(或缓慢的API调用等).对每个部分负责的内容绘制该线条是使框架对我有用的原因.
请记住,这些是我对如何使用框架的看法.我不是说这是唯一的解决方案.您的开发团队可能会发现更有用的东西,保持这门学科对我来说已经有好几年了.
总结以上是内存溢出为你收集整理的c# – .Net MVC – 从视图中访问数据库不仅仅是糟糕的实践?全部内容,希望文章能够帮你解决c# – .Net MVC – 从视图中访问数据库不仅仅是糟糕的实践?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)