<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调用等).对每个部分负责的内容绘制该线条是使框架对我有用的原因.
请记住,这些是我对如何使用框架的看法.我不是说这是唯一的解决方案.您的开发团队可能会发现更有用的东西,保持这门学科对我来说已经有好几年了.
原文地址:https://www.jb51.cc/csharp/100806.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。