在 MVC Web 应用程序中,谁负责过滤大量对象、视图或模型?

2024-01-10

我有一个基于 MVC 设计构建的 Web 应用程序。

我有一个数据库,其中包含大量对象(论坛线程),我无法立即将其加载到内存中。我现在想用不同的过滤器来显示这个集合(的一部分)(有点像 stackoverflow 对按日期、投票、标签等排序的问题所做的那样)。

我在哪里实现过滤逻辑?在我看来,这必须进入应用程序的模型部分,因为只有模型与数据库交互(在我的实现中)。如果我将过滤作为视图的一部分,那么视图必须直接访问数据库才能获取过滤对象的列表,对吧?我想避免这种情况,因为它会将数据库布局暴露给视图。但同时,显示相同数据的不同视图should在应用程序的视图部分中实现,因为它们只是不同的views相同的数据。

那么我该如何解决这个问题呢?我是否要创建一个附加模型(例如 FilteredThreadsList),并让它记住要使用的过滤器,然后使用 FilteredView 来显示 FilteredThreadsList 吐出的线程列表?

或者我是否必须构建一个 ThreadQueryier 来允许视图在数据库中查询某些线程对象,这样我就可以在视图中拥有过滤逻辑而无需暴露数据库后端?


您永远不应该从视图中查询数据。我不知道您具体使用什么框架,但对于 Ruby on Rails(其他框架应该相同),我们总是从控制器中提取必要的数据并将所有这些信息存储到变量中。该变量将由视图访问,这可以帮助您避免直接从视图查询数据库。如果控制器中查询数据库的代码太长,请将该代码插入到模型中,以便您的项目更易于维护未来。此外,如果需要,您可以从应用程序中的多个位置调用此模型方法。祝你好运!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 MVC Web 应用程序中,谁负责过滤大量对象、视图或模型? 的相关文章

  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • jqgrid如何动态创建列

    我正在尝试在 mvc 中实现 jquery 有一些关于此的教程 但我不希望 jquery 对列进行硬编码 或者实际上任何要硬编码的内容 这是应该是的逻辑在控制器中 所以 查看下面的代码 您将看到 colNames 和 colModel 我如
  • 根据 MVC,哪种项目结构是正确的? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我注意到诸如flask通常有一个名为views容纳 app route def index return render template ind
  • Spring MVC 将上下文路径附加到表单操作

    在 Spring 3 1 下运行相同的代码很好 刚刚升级到3 2 现在出现以下问题
  • Yii:使用与控制器布局不同的布局渲染动作

    在 Yii 中 有没有办法使用不同的方式渲染单个动作layout比为控制器定义的值 我有一个操作希望其格式与其他操作不同 并且文档中不清楚这是否可能 我相信您可以调用该操作 layout多变的 public function actionY
  • 讨论iPhone上的MVC实现

    我在不同的框架上使用 MVC 模式一段时间 例如 swing android gwt 现在 我正在学习iPhone框架 我对MVC的实现感到非常惊讶 我问的问题是关于视图和控制器交互的 首先 这就是我构思 MVC 模式的方式 视图和控制器通
  • 简单的注入器和内部构造函数

    我正在开发一个小型类库 并为我的 DI 使用简单注入器 类库有一个访问点 我猜是某种服务 它是public它有一些internal服务和存储库 我看到 Simple Injector 不支持使用内部构造函数进行构造函数注入 例如 我的产品服
  • “纯”MVC 实现有多大用处?

    我在一家提供类似 CRM 的定制软件的公司工作 我们目前正在重新设计 重新开发该软件 希望它看起来更现代 并且更容易为未来的客户开发和定制 目前 定制每个新应用程序都需要很长时间 有一种假设是 花费这么长时间的原因是 视图 层中存在大量业务
  • Global.asax 和 Error.aspx 中的 ASP.NET MVC 错误日志记录

    我正在创建一个 ASP NET MVC 应用程序 我需要在两个地方处理异常 Global asax vb 文件 Public Class MvcApplication Inherits System Web HttpApplication
  • backbone.js:视图中影响集合中不同模型的按钮

    我刚刚开始使用backbone js 到目前为止 我真的很喜欢它 我有这样的事情 ModelA ModelB ViewA ViewB ModelA 持有 ModelB 的集合 如何使用按钮构建模型 B 的视图 单击该按钮会更改集合中下一个
  • PouchDB可以在客户端代理一个大数据库吗?

    在单页应用程序上工作时 我必须编写大量样板代码才能与服务器端数据同步 PouchDB http pouchdb com 为这个问题提供了一个优雅的解决方案 允许在客户端本地访问数据 我不明白的是 当数据库太大而无法完全适应浏览器内存时 Po
  • Ajax.BeginForm 帮助程序未将部分视图加载到指定的 DIV 中

    我正在使用 MVC 尝试将表单提交的结果加载到特定的 DIV 中 下面是我的表单的代码 div class segmentForm clearfix div
  • Backbone.js 应用程序可以逐步增强并可供搜索引擎抓取吗?

    我需要为我的下一个项目实现一个 MVC JavaScript 框架 但它既是一个网站 又是一个 Web 应用程序 是否可以公开数据服务器端 然后解析 URL 以显示 JS 版本 我计划使用 Rails 作为服务器端代码 我写了一个关于这个主
  • 尝试使用 angularJS 和 c# webapi 从服务器下载文件

    将文件上传到服务器时效果很好 没有损坏的文件 但是 当我下载文件时 除了纯txt 它们起作用 它们的规模不断扩大并变得腐败 经过大量调查后 我不知道可能出了什么问题 我只是写文件 作为响应流并下载 blob 欢迎任何想法 严重依赖此线程来解
  • GWT 与 Apache Wicket

    GWT 和 Wicket 都是有状态的 基于 Java 对象的 GWT 完全基于客户端 具有 javascript 优化 CSS 优化等功能 而且我对 Apache Wicket 还很陌生 我对 Wicket 的了解越多 就越感觉它与 GW
  • (Nand2tetris CPU)每个时钟周期发生(什么/多少)?

    在此基础上Nand2俄罗斯方块 https www coursera org learn build a computer lecture gjhcz unit 5 5 project 5 overviewCPU 如下图 我想了解一下 每个
  • 如何将 Stripe 支付网关集成到 ASP.NET MVC

    我想整合条纹PSP https stripe com 到我的 ASP NET MVC 应用程序中 在你用寻找具有相同问题的问题来折磨我之前 我确实寻找过上述问题 但它们似乎已经过时了 我尝试按照 stripe 网站上的程序进行操作 但 ja
  • Spring MVC 控制器中的硬编码@RequestMapping URL

    我正在研究 Spring 3 并在一个简单的 Web 应用程序中使用它 现在我正在使用注释实现 Spring MVC 控制器 我想知道 有没有使用的最佳实践 RequestMapping注解 我的意思是 我发现通常这个注释中映射的 URL
  • UML 状态图中的转换:使用触发器还是防护更好?

    在 UML 状态图的设计中 我似乎可以选择使用triggers or guard实现状态之间转换的逻辑 那么使用哪个更好呢 考虑到相同的转换逻辑 触发器的行为与守卫有什么不同吗 一种相对于另一种的优点 缺点是什么 是否存在取决于特定工具的差
  • 将用户数据存储在身份验证服务器或资源服务器中?或两者?

    这是我第一次使用 IdentityServer 4 和 AspNetIdentity 设置 OpenID Connect 我希望有人能够揭开有关存储用户数据的部分的神秘面纱 到目前为止我读到的是 用户数据应该存储在连接到身份验证服务器的身份

随机推荐

  • RecyclerView onClick 用于多个按钮并从 Activity 进行处理

    我在用着RecyclerView with CardView并在里面CardView有 2 个按钮 现在 已经实施了onClick事件通过实施View OnClickListener by the ViewHolder静态类并覆盖事件 其工
  • 如何使用 Prototype 自动调整文本区域大小?

    我目前正在为我工 作的公司开发一个内部销售应用程序 并且我有一个允许用户更改送货地址的表单 现在 我认为如果我用于主要地址详细信息的文本区域仅占据其中文本的区域 并且在文本发生更改时自动调整大小 那么它看起来会好得多 这是当前的屏幕截图 有
  • 如何加载页脚之前的内容?

    我的页脚是在内容加载之前加载的 我的导航栏中有多个按钮 单击时会打开一个新组件 当用户点击事件时 它会在从 api 加载事件后发出 此时页脚加载正常 但之后我转到另一个链接 比如说特殊链接 然后页脚在活动之前加载 我尝试如下 事件组件 ts
  • 在选项卡栏控制器之前显示登录屏幕

    我正在做一个 Twitter 应用程序 并在 AppDelegate 上 didFinishLaunchingWithOptions如果该对象上的 NSUserDefaults 为空 我将使用下一个代码来加载登录视图 NSUserDefau
  • 基于 PySpark 中另一个数据帧的列值创建指标数组

    我有两个数据框 df1 id1 items1 0 B C D E 1 E A C 2 F A E B 3 E G A 4 A C E B D and df2 id2 items2 001 A C 002 D
  • Developer M 预览版中的共享库

    我正在尝试在 Android M 开发预览版上测试我的应用程序 我的应用程序使用共享库 我已将其放置在 Android Studio 内的 jni libs armeabi 中 我相信当它召唤的时候System loadLibrary my
  • 如何减小 Puppeteer 的大小

    我使用 Puppeteer 进行网页抓取 并使用我制作的一个小型 NodeJs Web 应用程序 该网络应用程序托管在 Heroku 上并使用jontewks puppeteer heroku buildpack到作品 我面临的问题是 由于
  • Firebase 查询方法不起作用

    这是我的数据树 look twopointo 0 comment Hi Text1 Hello Text2 Bonsoir type Bonjour version 4 0 6 由于某种原因查询不起作用 button setOnClickL
  • Javascript 数组映射 2D 数组

    我正在尝试聚合下面的数组 arr 以便获得如下输出 期望的输出 2011 04 11 开放 6 2011 04 11 关闭 4 但我得到 Output 2011 04 11 开园 6 2011 04 11 闭园 4 我如何获取 javasc
  • VSTS (Azure DevOps) 中的 Selenium 屏幕截图

    根据我的搜索 它应该 正常工作 This https learn microsoft com en us azure devops test collect screenshots and video view vsts是我找到的最好的文章
  • 处理文件时,如何获取当前行号?

    当我使用下面的构造循环文件时 我还需要当前行号 with codecs open filename rb utf8 as f retval for line in f process line 是否存在类似的东西 for line line
  • WSGI:start_response函数的目的是什么

    你能提供一个现实生活中的例子吗WSGI http wsgi readthedocs org en latest start response http webpython codepoint net wsgi application int
  • 在 Android 谷歌地图 API v2 中隐藏标记信息窗口

    目前 我可以使用 Android Google 地图 API v2 查看 Google 地图中的所有标记 在地图中添加我的标记 mapView addMarker new MarkerOptions position aUsersLocat
  • Mysql 列约束为“非空”/“必需”

    我们可以将mysql中的一列指定为 非空 必需 吗 要求是确保该字段在任何记录插入时都不会保持空白 我假设你不想要空白 空字符串 而不是NULL 表中允许的值 通常情况下 这就是CHECK约束为 你做类似的事情 CREATE TABLE m
  • 使用 Laravel 的 eloquent 在 JSON 列中搜索

    我一直在使用 Laravel 5 4 的 eloquent 遇到了一个问题 我有一个名为posts其中 有一列名为template ids 它将值存储在json encoded格式如下 1 25 48 现在 我想根据 ID 数组对查询应用过
  • 为什么 Jarvis 的 March(“礼品包装算法”)的这种实现不起作用?

    我正在尝试实现贾维斯算法来查找一组点的凸包 但由于某种原因它不起作用 这是我的实现 procedure TPointList ConvexHull aHull TPointList Return the convex hull of a s
  • Keras ImageDataGenerator 设置平均值和标准差

    我有一个预训练的 keras 模型 我想在新数据集上使用它 我有预训练模型中的权重 平均值和标准文件 我想使用图像数据生成器中的 flow from directory 来加载新数据集 问题是如何显式设置均值和标准文件以进行标准化 Than
  • 使用延迟和管道的链式回调

    我正在努力使用延迟将回调与管道链接起来 它似乎工作得很好 但在回调 2 中 它给我带来了来自回调 1 的数据 代码如下所示 var getCall1 function return ajax url type GET data conten
  • 想学习如何在 Objective-C 中使用 OpenGL,但不知道从哪里开始。帮助? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我对 OpenGL 的经验为零 对 Objective C 的经验也很少 但我对 C 的了解相当不错 我应该查看哪些资源来开始学习如何在
  • 在 MVC Web 应用程序中,谁负责过滤大量对象、视图或模型?

    我有一个基于 MVC 设计构建的 Web 应用程序 我有一个数据库 其中包含大量对象 论坛线程 我无法立即将其加载到内存中 我现在想用不同的过滤器来显示这个集合 的一部分 有点像 stackoverflow 对按日期 投票 标签等排序的问题