c# – .Net MVC – 从视图中访问数据库不仅仅是糟糕的实践?

c# – .Net MVC – 从视图中访问数据库不仅仅是糟糕的实践?,第1张

概述我见过一些开发人员实例化从视图中访问数据库的模型.通常,当他们想要访问html partial时,他们会这样做,他们只是在视图中创建一个新的viewmodel: <div class='blogListing'> @Html.Partial("BlogListing", new BlogListingViewModel(10));</div> 对我来说,最佳做法是在ViewModel中实 我见过一些开发人员实例化从视图中访问数据库的模型.通常,当他们想要访问HTML partial时,他们会这样做,他们只是在视图中创建一个新的viewmodel:
<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 – 从视图中访问数据库不仅仅是糟糕的实践?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1246830.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存