排序逻辑应该放在模型、视图还是控制器中? [关闭]

2024-04-21

我有一个下拉列表,向最终用户显示表中的值。我希望这些值按字母顺序排序。

根据正确的 MVC 设计,我应该将排序逻辑放置在哪一层:模型、视图还是控制器?

EDIT:在回答 LarsH 的问题“你的意思是确定所需排序顺序的代码?还是执行排序的代码?”,我最初指的是确定所需排序顺序的代码。


谁控制排序顺序?

Simple MVC diagram (From Wikipedia http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)

1) 数据本身的自然顺序:

该订单是模型的一部分,因此应该放在那里。 “所有数据”的原始拉取将按排序顺序返回数据,并且没有用于选择排序顺序的界面。

2)用户应该控制他们查看数据的方式:

视图将提供与控制器交互的接口(例如升序/降序箭头),并且模型足以很好地理解数据以对数据进行请求的排序。然而,与 (1) 不同,原始数据拉取不一定需要排序。

在任一情况下,

除了显示已选择的排序方向的能力之外,视图不了解正在进行排序。不要把逻辑放在那里。

小警告

排序功能could在一种情况下(我可以立即想到;可能还有更多),纯粹进入视图:

“哑”排序,其中所有数据都已在视图中,并且不必使用任何领域知识来进行排序。例如,非常简单的字符串或数字比较。例如,当结果可能跨多个页面时,在网页上的搜索结果中这是不可能的。

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

排序逻辑应该放在模型、视图还是控制器中? [关闭] 的相关文章

  • 就MVC模式而言,Struts 2中使用的Action是什么?

    在Struts2中 控制器将请求分派给Action Action将其传递给后端逻辑 这可以看作是一个非常大的过程 model 处理请求 JSP代表视图 Struts2中如何定义Action 肯定是not一个看法 是控制器还是模型 Strut
  • NamedScopes Ninject 绑定和异步(线程)

    我的项目由服务和存储库构成 所有存储库共享数据库上下文 在我的一个服务层中 我有一个使用存储库写入数据库的异步方法 Web 请求将完成并处理上下文 然后此方法才能使用它 我试着去理解命名范围 http www planetgeek ch 2
  • MVC4 中的 ELMAH 和 API 控制器不记录错误

    在 MVC4 中使用 API 控制器 当控制器操作引发异常时 ELMAH 不会记录错误 我认为问题在于 MVC4 将 HTTP 状态代码设置为 500 并且它返回 JSON 对象中的异常详细信息 但它不会抛出未处理的异常 因此 ELMAH
  • 服务层或存储库中的密码哈希等?

    作为 MVC 的最佳实践 在发送到数据库之前处理密码散列 加盐或数据格式化等事务的逻辑应该放在哪里 我读到存储库应该仅用于处理数据访问的逻辑 这是属于服务层的东西吗 控制器 这还重要吗 我倾向于将散列放在存储库层中 如果只是出于实际原因 即
  • 在 Visual Studio 中将域名从 localhost 更改为自定义名称

    我是 MVC 新手 我刚刚在 VS 2010 中创建了一个 MVC4 测试项目 它运行正常 但 url 是http 本地主机 60826 http localhost 60826 我想把它改成http my test site http m
  • 在 asp.net MVC 控制器中调用异步外部 Web 服务

    在 Asp net MVC 控制器 GET 方法 中 我调用外部 Web 服务 用于 IP 地理定位 返回 IP 位置的 json 数据 如何使调用异步 以便堆栈可以在等待服务响应时继续 当 GEO IP 请求完成后 我希望能够更新数据库
  • 如何在 MVC 5 中设置自定义 ClaimsPrincipal?

    我创建了一个自定义主体类 public class FacebookPrincipal ClaimsPrincipal public JObject Data get set 我想用它 当用户登录时 我尝试设置 var fbP new Fa
  • SQL Server 将 SP_EXECUTESQL 识别为对象而不是过程名称

    我在用DBContext Database SqlQuery
  • 为什么 Visual Studio 不移动发布中的某些文件?

    当我尝试发布项目时 Visual Studio 不会将某些文件移动到目标发布文件夹 目前我有这个问题 json文件 我正在使用 Visual Studio 2010 和 MVC4 是否有关于应发布哪些文件或 mime 类型并将其移动到目标文
  • Windows 身份验证在 IISExpress 中有效,但在 IIS 中无效

    我有一个奇怪的问题 我正在 Visual Studio 2013 中使用最新的 MVC5 我正在尝试创建一个托管匿名 API 的站点以及一个需要通过 Windows 身份验证的 Intranet 域凭据的管理仪表板 当通过 IIS Expr
  • 无法将 iTextSharp 与 ASP.NET 5 Core 一起使用

    我正在尝试将 iTextSharp 与 ASP NET 5 Core 一起使用 但是 当我尝试使用 iTextSharp 5 5 5 构建 ASP NET 应用程序时 出现这些错误 Code using Microsoft AspNet M
  • VS2012 中的实体框架问题 - 重命名属性不粘

    我试图在 VS2012 中创建一个新项目 其中包含管理 MVC4 项目 网站 MVC4 项目和通用实体框架 dll 项目 我使用了现有的数据库并从中生成了我的实体 我更新了一些关系属性的名称并保存 然后 我将对实体框架项目的引用添加到我的两
  • 果园:自定义注册字段

    对于我的 Orchard 项目 我需要用户在注册时提供一些附加信息 说 名字 姓氏 裤子颜色 此信息必须在注册时输入 并且不能推迟到以后 根据客户的订单 我尝试使用配置文件和扩展注册插件来请求这些 但据我所知 这只为我提供了在注册表中显示的
  • 如何通过 FluentValidation 验证上传的文件

    如何使用 FluentValidation 验证上传的文件
  • StripeException:没有这样的计划

    我正在创建一个客户对象并将其分配给 Stripe 中的一个计划 但收到错误 不存在这样的计划 错误中给出的计划 ID 是正确的计划 ID No such plan prod EIcYiWkVa7LF7T 可能值得注意的是 客户的 Strip
  • 您认为 ASP.NET MVC 会与 ASP.NET Webforms 竞争吗?

    您认为 ASP NET MVC 会在 Microsoft Web 开发市场中占据重要份额吗 还是会占市场的 10 15 哦是的 它将让 Web 表单脱颖而出 我们已经看到了真正的 MVC 框架在 Java 世界中的价值 在 MS 世界中 这
  • ASP.NET MVC 动作过滤器

    有谁知道即使在 CATCH 块中 ActionFilterAttribute 类的 OnResultExecuted 方法是否也会执行 ie CookiesActions public ActionResult Login Usuarios
  • asp.net mvc - Ajax 刷新视图的每个元素

    希望在退出 jquery 对话框后使用 ajax 刷新当前页面 我有一个包含 foreach 循环的视图 数据是从模型中提取的 每个循环有 2 个编辑 删除按钮 当我单击 编辑按钮 时 将打开一个 jquery UI 对话框进行编辑 当我保
  • MVC3、Ninject、MvcSiteMapProvider - 如何将依赖项注入到重写方法

    我有一个正在使用的 MVC3 应用程序Ninject http ninject org and Mvc站点地图提供者 http mvcsitemap codeplex com 我创建了此类 MvcSiteMapProvider 使用它来动态
  • TextBoxFor @Value(大写)而不是@value

    这只是出于好奇 为什么这段代码有效 Html TextBoxFor x gt x Age new Value 0 这不是 Html TextBoxFor x gt x Age new value 0 请注意其中的大写 V Value I k

随机推荐

  • 在 JavaScript 中从 Base64 字符串创建 BLOB

    我在字符串中有 Base64 编码的二进制数据 const contentType image png const b64Data iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQV
  • 从 webview 获取用户触摸的元素

    大家好 我正在尝试获取用户在 web 视图中触摸的 html 元素 例如 该场景是用户触摸 Web 视图中的某种按钮 应用程序显示该按钮的 html 代码 如下所示 a href index html a 我已经能够获取用户正在浏览的 ht
  • 为什么我在显式调用构造函数时无法引用实例方法?

    有谁知道为什么你可以参考static构造函数第一行中的方法使用this or super 但不是非静态方法 考虑以下工作 public class TestWorking private A a null public TestWorkin
  • 将 UTF-8 编码的转储加载到 MySQL 中

    昨天我为这个问题苦苦思索了几个小时 我在 MySQL 4 1 22 服务器上有一个数据库 编码设置为 UTF 8 Unicode utf8 如 phpMyAdmin 报告 该数据库中的表的默认字符集设置为latin2 但是 使用它的 Web
  • 如何调整 NLTK 句子标记器

    我正在使用 NLTK 来分析一些经典文本 但我在按句子标记文本时遇到了麻烦 例如 这是我从以下内容中得到的片段莫比迪克 http www gutenberg org cache epub 2701 pg2701 txt import nlt
  • 如何对计算值进行排序?

    我目前正在建立一个 NFL 选秀联盟网站 我有一个用户模型 一个游戏模型和一个连接表 用于捕获每个用户的个人选择 游戏模型具有 结果 属性 其中 W 表示获胜 L 表示失败 P 表示推动 平局 我在构建排名页面时遇到问题 目前我的用户模型中
  • 将 cURL json 数组响应转换为关联数组

    我有一个像这样的 cURL 请求 ch curl init data filter year StartTime urlencode eq 2013 and month StartTime urlencode eq 06 curl seto
  • Jenkins Slack 集成

    我想使用 Jenkins 中的 Slack 插件将通知发送到 Slack 通道 当我测试连接时 Jenkins 表示成功 但我在 Slack 频道中没有收到任何通知 是否存在任何已知问题 如何让 Jenkins 向 Slack 发送通知 我
  • 操作栏图标大小

    根据操作栏图标 https developer android com guide practices ui guidelines icon design action bar html size11mdpi 屏幕的操作栏图标应为 24 x
  • 如何使用 Slick 3.0 编写可读的嵌套连接查询

    此代码创建一个查询 用于在 Web 后端检索用户的个人资料 它创建一个查询 将必要的信息组装到 DTO 这只是一个案例类 中 随后以 JSON 形式发回 def getProfile userId Long val q for u p a
  • 从 powershell 脚本调用可执行文件(带参数)

    我正在从 powershell 调用 zip 实用程序 但很难直接获取其参数 这是代码 if not test path C Program Files x86 7 Zip 7z exe throw C Program Files x86
  • 创建嵌套 ul li 的 PHP 函数?

    我正在尝试将一个小型 CMS 附加到我正在创建的网站 不过我遇到了一个小问题 CMS 使用 PHP 函数插入菜单 这些 PHP 函数创建 HTML 我希望使用的特定函数 treemenu 创建一个嵌套的 ul li 然后可将其用于下拉菜单
  • 如何更改此 html 用户表单上的日期格式

    我有将数据输入 mysql DB 的 html 表单 但在日期的输入字段中它具有以下格式 mm dd yyyy 但我更喜欢在输入日期时使用这种格式 dd mm yyyy 任何机构都可以帮助更改格式吗 这里是 HTML 表单 p Admiti
  • IDispatchEx 存在于哪里?

    找不到包含 IDispatchEx 接口的库 我想实现这个接口 但是找不到 有谁知道它在哪里吗 谢谢 保罗 如果您想编写一个实现的托管类IDispatchEx http msdn microsoft com en us library sk
  • 带有 Kafka 消费者的 Spring Boot 作业调度程序

    我正在开发一个 POC 我想使用来自 Kafka 主题 用户 的消息 尝试实现消费者应该从 Kafka 主题读取消息 一旦 spring boot 调度程序在预定时间或 cron 时间触发 那么我们应该开始从 kafka 主题中一一消费现有
  • 如何更改 richfaces 组合框提出的建议?

    我目前正在玩 richfaces 组合框 你可以检查是 我想知道是否有办法改变在组合框中提出建议的方式 而不是仅建议以同一字母开头的单词 而是建议具有以该字母或字母组合开头的其他单词的单词 这是演示中的示例 从当前的组合框中 如果我输入 M
  • WKWebView 评估 Javascript 而不重新加载页面

    目前我只能通过将 javascript 添加到 webview 的配置的 userContentController 并重新加载页面来弄清楚如何评估 javascript 如下所示 WKUserScript script WKUserScr
  • 如果
    中的操作字段有参数会发生什么?

    如果我在 HTML 中执行以下操作 是否会出现一个得到良好支持的常见行为
  • 如何在运行 Tensorflow 推理会话之前批处理多个视频帧

    我做了一个项目 基本上使用谷歌对象检测 API 和张量流 我所做的就是使用预先训练的模型进行推理 这意味着实时对象检测 其中输入是网络摄像头的视频流或使用 OpenCV 的类似内容 现在我得到了相当不错的性能结果 但我想进一步提高 FPS
  • 排序逻辑应该放在模型、视图还是控制器中? [关闭]

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一个下拉列表 向最终用户显