Questions tagged «model-view-controller»

模型-视图-控制器(MVC)是软件工程中使用的体系结构模式。对于Microsoft ASP.NET MVC,请改用[asp.net-mvc]或[asp.net-core-mvc]标记。对于Spring MVC,请改用[spring-mvc]标签。

6
使用Windows窗体实现MVC
在哪里可以找到一个很好的示例,说明如何在Windows窗体中完全实现MVC模式? 我在各个站点(例如,The Code Project和.NetHeaven)上找到了许多教程和代码示例,但是与MVC相比,它们在观察者模式方面更具代表性。由于我要开发的应用程序是用于学校项目的,因此我不愿意使用诸如PureMVC或MVC#之类的框架。


3
如何在Web MVC应用程序中实现访问控制列表?
第一个问题 请,请您说明一下如何在MVC中实现最简单的ACL。 这是在Controller中使用Acl的第一种方法... <?php class MyController extends Controller { public function myMethod() { //It is just abstract code $acl = new Acl(); $acl->setController('MyController'); $acl->setMethod('myMethod'); $acl->getRole(); if (!$acl->allowed()) die("You're not allowed to do it!"); ... } } ?> 这是非常糟糕的方法,它的缺点是我们必须将Acl代码添加到每个控制器的方法中,但是我们不需要任何其他依赖项! 下一种方法是制作所有控制器的方法private,并将ACL代码添加到控制器的__call方法中。 <?php class MyController extends Controller { private function myMethod() { ... …

7
@RequestBody MultiValueMap不支持内容类型'application / x-www-form-urlencoded; charset = UTF-8'
基于Spring @Controller的x-www-form-urlencoded问题的答案 我写了下面的@Controller方法 @RequestMapping(value = "/{email}/authenticate", method = RequestMethod.POST , produces = {"application/json", "application/xml"} , consumes = {"application/x-www-form-urlencoded"} ) public @ResponseBody Representation authenticate(@PathVariable("email") String anEmailAddress, @RequestBody MultiValueMap paramMap) throws Exception { if(paramMap == null || paramMap.get("password") == null) { throw new IllegalArgumentException("Password not provided"); } } 请求失败并出现以下错误 { "timestamp": 1447911866786, …

7
如何在Backbone中获取单个模型?
我Clock在Backbone中有一个模型: var Clock = Backbone.Model.extend({}); 我正在尝试从中获取具有最新信息的实例/clocks/123。我尝试过的一些事情: “类”级别的方法 Clock.fetch(123) // TypeError: Object function (){ ... } has no method 'fetch' 创建一个实例,然后调用fetch它: c = new Clock({id: 123}) c.fetch() // Error: A 'url' property or function must be specified 集合 我尝试创建一个AllClocks集合资源(即使我在页面上没有用到这种东西): var AllClocks = Backbone.Collection.extend({ model: Clock, url: '/clocks/' }); var allClocks = …

6
如何将参数传递给ASP.NET MVC中的局部视图?
假设我有这个局部视图: Your name is <strong>@firstName @lastName</strong> 这可以通过仅儿童​​操作来访问,例如: [ChildActionOnly] public ActionResult FullName(string firstName, string lastName) { } 我想将此局部视图与另一个视图一起使用: @Html.RenderPartial("FullName") 换句话说,我希望能够从视图到部分视图传递firstName和lastName。我该怎么办?

3
胖模型和瘦控制器听起来像是在创建上帝模型。
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我读过很多博客,这些博客提倡胖模型和瘦控制器方法,尤其是。Rails阵营。结果,路由器基本上只是想找出要在哪个控制器上调用的方法,而所有控制器方法都需要在模型上调用相应的方法,然后调出视图。所以我在这里有两个我不明白的问题: 除了仅基于路由在类似于上帝的模型上调用方法外,控制器和路由器实际上并没有执行很多不同的任务。 模型做得太多了。发送电子邮件,创建关系,删除和修改其他模型,排队任务等。基本上,现在您有了像神一样的对象,它们应该执行与建模和数据处理有关或不涉及的一切事情。 您在哪里划界线?这不只是落入上帝的榜样吗?

4
MVC应用程序在哪里适合“业务逻辑层”?
首先,在有人大声疾呼之前,我很难用一个简单的标题来概括它。另一个标题可能是“域模型和MVC模型之间有什么区别?” 或“什么是模型?” 从概念上讲,我将模型理解为视图和控制器使用的数据。除此之外,对于构成模型的原因似乎有很多不同的意见。什么是领域模型,应用程序模型,视图模型,服务模型等。 例如,在我最近询问存储库模式的问题中,有人告诉我空白是存储库是模型的一部分。但是,我还读过其他意见,认为该模型应与持久性模型和业务逻辑层分开。毕竟,存储库模式是否不应该将具体的持久性方法与模型分离?其他人说,域模型和MVC模型之间是有区别的。 让我们举一个简单的例子。MVC默认项目中包含的AccountController。我已经读过一些意见,认为其中包含的帐户代码设计不佳,违反了SRP等。如果要为MVC应用程序设计“适当的”成员资格模型,那将是什么? 您如何将ASP.NET服务(成员资格提供程序,角色提供程序等)与模型分开?还是你会吗? 从我的角度来看,模型应该是“纯”的,也许带有验证逻辑..但是应该与业务规则(除了验证)分开。例如,假设您有一条业务规则,该规则规定在创建新帐户时必须向某人发送电子邮件。在我看来,这并不真正属于模型。那么它属于哪儿呢? 有人在乎这个问题吗?

4
差异执行如何工作?
我已经在Stack Overflow上看到了一些提及,但盯着Wikipedia(相关页面已被删除)和 MFC动态对话框演示并没有启发我。有人可以解释一下吗?学习根本不同的概念听起来不错。 根据答案:我认为我对此感觉更好。我想我只是第一次没有仔细看一下源代码。在这一点上,我对差异执行有不同的感觉。一方面,它可以使某些任务变得相当容易。另一方面,要使其启动并运行(即以您选择的语言进行设置)并不容易(我相信如果我对它的理解更好的话就可以了)……尽管我猜想它的工具箱只需要制作一次,然后根据需要进行扩展。我认为,为了真正理解它,我可能需要尝试用另一种语言来实现它。

4
胖模型/瘦控制器与服务层[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 7年前关闭。 改善这个问题 我使用.Net开发企业应用程序已有很多年了。我的应用程序通常具有一个域模型,其中包含映射到SQL DB表的实体。我使用存储库模式,依赖注入和服务层。 最近,我们开始从事MVC 3项目的工作,我们在争论应该在哪里放置哪种逻辑。我遇到了瘦控制器/ FAT模型架构,并且想知道服务层如何适合 选项1-服务示范 控制器很薄,在模型上调用方法。这些模型“知道”如何从数据库加载自身并与存储库或服务对话。例如,customerModel具有Load(id)方法,并加载客户和一些子对象,例如GetContracts()。 选项2-控制器与服务对话 控制器要求服务检索模型对象。加载/存储等逻辑在服务层中。该模型是仅包含数据的纯实体模型。 为什么选项1会是一个更好的选择,尤其是当我们谈论企业应用时,我的经验告诉我要分开关注点,将模型和控制器保持尽可能的薄,并让专门的服务执行业务逻辑(包括数据库交互) 感谢您的所有建议和对良好资源的引用。

4
Sails.js vs Meteor-两者的优点是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 我已经阅读了很多有关Nodejs及其框架的文章,最近完成了我的第一个完整的javascript前端(使用Angularjs)。 我已经决定,我的下一个宠物项目将是使用以下两个框架之一进行的Nodejs冒险: Sails.js 流星 我已经阅读了两者,但是仍然不能完全理解它们之间的差异,以及为什么我应该选择在另一种之上使用。因此,请戴上您最好的推销员帽子,挑选一个框架,然后卖给我。 我的宠物项目需要具备以下功能: 现场比分 类似于Reddit的线程,实时 类似于Wikipedia的网页版 用户/角色

12
MVC:在哪里放置业务逻辑?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2个月前关闭。 改善这个问题 首先,我已经看到了很多有关此问题,但是背后的原因却不够多。如果我的问题不够好,应该删除,我会理解的。 例如,我看过这个问题,有超过45个赞成票的答案说他建议您将业务逻辑放入模型中,这听起来很合逻辑。 但是,我的第一个大型项目已经在控制器中完全使用了所有BL,因为我没有对这些事情提出疑问,而是看一下如何完成操作(AccountController如果您选择带有表单身份验证的MVC,该操作会自动添加)。所有方法看起来都充满了BL。还是可能添加的最少代码量让我无所适从? youtube上的一个人通过将所有逻辑放到模型中来问我他是否正确,起初我不是!然后我开始认为也许他是对的!? 那么,毕竟我应该把业务逻辑放在哪里?如果在模型类中,那么在控制器中的方法中应该考虑多少代码是正常数量?一行最多只能在控制器中的模型中调用某种方法,然后返回到视图?

7
MVC模式和Swing
我发现在“真正的Swing生活”中最难掌握的设计模式之一是MVC模式。我浏览了该站点上的很多文章,讨论了该模式,但是我仍然不了解如何在Java Swing应用程序中利用该模式。 假设我有一个JFrame,其中包含一个表,几个文本字段和一些按钮。我可能会使用TableModel将JTable与基础数据模型“桥接”。但是,负责清除字段,验证字段,锁定字段以及按钮操作的所有函数通常都直接在JFrame中。但是,这不是将模式的Controller和View混合了吗? 据我所知,当查看JTable(和模型)时,我设法“正确地”实现了MVC模式,但是当我整体查看整个JFrame时,事情就变得混乱了。 我真的很想听听其他人对此的看法。当需要使用MVC模式向用户显示表格,几个字段和一些按钮时,如何处理?

1
使用Node.js建立网站的最佳做法
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 我想知道如何使用Node.js从头开始开发网站。我明白我怎么能可能做到这一点,但我感兴趣的是最好的设计实践。 我需要这个理论网站来: 做很多AJAX 非常简单 相对较小 连接到...假设一个MySQL服务器 在PHP中,构建一个非常小的网站非常简单-我在Apache和MySQL服务器上设置了PHP,然后执行以下操作: includes/db/ 它具有用于连接数据库的connect.php,具有常见数据库相关功能的文件等 includes/layout/ 其中包含footer.php,header.php和其他与布局相关的东西 includes/users/ 处理与用户相关的动作 然后,PHP仅允许您构建页面并将这些文件包含在一起以形成一个网站-我可以这样: <?php require_once('inclues/users/user_session.php'); require_once('inclues/db/connect.php'); require_once('inclues/design/header.php') ?> // Other php or html or related content relating to the page <?php require_once('inclues/.../footer.php'); ?> 我想知道什么可能是Node.js的相似-我正在寻找一种方式来做到这一点是因为简单,快速和简单越好。 如果答案不简单,我会推荐一本书,我不介意阅读。 我喜欢基于事件的编程,我非常喜欢JavaScript的功能,并且对Node.js感到非常兴奋。我想学习如何从一开始就以正确的方式开发这类东西。

6
MVC模型对象,域对象和DTO有什么区别
MVC模型对象,域对象和DTO有什么区别? 我的理解是: MVC模型对象: 为要通过相应视图显示的数据建模。它可能不会直接映射到域对象,即可能包含来自一个或多个域对象的数据。 客户端 可能包含业务逻辑。例如。验证,计算的属性等 没有与持久性相关的方法 域对象: 在问题域中对真实世界对象进行建模的对象,例如“保留”,“客户”,“订单”等。用于保留数据。 服务器端 没有业务逻辑 DTO(数据传输对象): 当层处于单独的进程中时(例如,从DB到客户端应用程序),用于在层之间传输数据的对象。当获取与多个域对象相对应的数据时,允许通过导线进行单个事务,而不是多个调用。DTO仅包含数据和访问器方法,并且不存在逻辑。数据用于特定的DB事务,因此它可能会或可能不会直接映射到域对象,因为它可能包含来自一个或多个域对象的数据。 在层之间传递时,在服务器端和客户端均使用 没有业务逻辑 没有与持久性相关的方法 因此,问题是: 以上理解正确吗?我是否缺少一些要点? 假设模型对象不需要额外的业务逻辑,是否有任何理由不将Domain对象用作MVC模型? 假设Model对象不需要额外的业务逻辑,是否有任何理由不将DTO用作MVC模型?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.