知识点4-1:哪些应该放在控制器动作方法中?

控制器是ASP.NET MVC应用程序的核心组件之一。它是一个含有一个或多个public方法(动作)的类,这些方法对应于特定的URL。这些动作充当着应用程序的“胶水”,将模型数据与应用程序的用户界面(视图)集合在一起。

控制器应充当一种协调程序,它不应该真正包含任何业务逻辑,而是充当一种转换层的形式,将视图中的用户输入转换成业务逻辑对象,反之亦然。

1.手动映射视图模型

在留言本这个例子中,GuestbookEntry类既作为域模型,也作为视图模型。它既表现了数据库中存储的数据,也表现了用户界面中的字段。

对于像留言簿这样的小型应用程序,这是足够的。但是,随着应用程序复杂性的提升,当复杂的用户界面结构必须不直接映射模型的结构时,即视图数据与模型结构不同,往往需要将两者分开。比如,让我们对Guestbook应用程序添加一个新的页面,以显示每个用户已递交了多少评论的摘要,如图所示。

为了创建这一屏幕,首先需要创建一个视图模型,它每一列含有一个属性——用户名和已递交的评论数:

时间: 2024-10-13 04:35:34

知识点4-1:哪些应该放在控制器动作方法中?的相关文章

在动作方法中生成输出URL (Generating Outgoing URLs in Action Methods) |

在控制器的方法中创建连接

UrlHelper u = new UrlHelper(this.ControllerContext.RequestContext); string url = u.Action("About", "Home", null); 生成超链接 string link = HtmlHelper.GenerateLink(this.ControllerContext.RequestContext, System.Web.Routing.RouteTable.Routes,

SpringMVC 控制器中 动作方法返回其他类型(输出ActionResult子类)

初来乍到,多多包涵. EmptypeResult:输出空类容 ContentResult:输出文本内容 return Content("数据"); JsonResult:输出josn数据 return Json(数据, JsonRequestBehavior.AllowGet); JavaScriptResult:输出js脚本 return javascript("js脚本") RedirectResult:重定向 return Redirect("~/控

ASP.NET 控制器和动作方法

1.什么样的类能成为控制器? 在ASP.NET MVC 中,直接或者间接地实现了IController接口的类,就会被Mvc框架认为是控制器. using System.Web.Routing; namespace System.Web.Mvc { public interface IController { void Execute(RequestContext requestContext); } } 从代码中,看到此接口有一个唯一的方法Execute,此方法会在请求到达控制器的时候被调用.

结合公司的框架解决MVC的分离问题、【公司的入口和解决路由分发功能(url转为控制器和方法的使用)】

1.面向对象的语法需要进行一次比较细节的总结 [到面向对象之后完成了基础语法的复习] 2.ecshop做电商的网站[模拟这个框架] 安装ecshop中的upload包[进行配置:注意gd和mysql] 安装成功之后ecshop并不兼容php-5.4以上的版本,报错太多 [现在需要考虑的是做一套系统实现] [另外需要参考多个框架和项目(成型的系统二次开发)了解业务和思想] [重点] 3.设计一个框架[MVC框架思维] (1)框架设计中的第一条思路 首先实现逻辑和显示的分离[因为php本身是嵌入式的

Magento2控制器:方法executeInternal

我刚拉的Magento 2(1.0.0-beta5的),而且我已经在努力扩展的全新副本不工作了,这并不让我感到吃惊.它通常会发生这样的.但是,这一次是不同的. 我得到这个错误: PHP的致命错误:类[命名空间] [模块] \控制器\ Adminhtml \模块\验证包含1个抽象方法,因此必须声明为抽象或实现其余的方法在应用程序(Magento的\框架\ APP \动作\行动:: executeInternal) /code/[Namespace][Module]/Controller/Admin

将插座变量(IBOutlet)关联到*.xib文件中对象 + 将对*.xib对象的操作关联到动作方法(IBAction)

将插座变量(IBOutlet)关联到*.xib文件中对象 以BNRDetailViewController.m和BNRDetailViewController.xib为例(<iOS编程>第10章例子) 1.打开BNRDetailViewController.xib,添加一个UITextField对象: 2.在辅助编辑器中打开BNRDetailViewController.m,方法是:按住Option键并点击项目导航面板中的BNRDetailViewController.m: 3.按住Contr

YII获得当前控制器和方法

[如何获得当前控制器和方法] 控制器:$this -> id ; 方法:$this->action->id ; 这主要是用在视图中,进行高亮显示. <div id="mainNav" class="clearfix"> <a href="./" <?php if($this->id == 'index')echo "class='cur'"; ?>>首页<spa

关于ThinkPHP控制器的方法失效的问题

今天发现控制器的方法失效了,用了排除法,找了长时间的原因,都没有找出来,后来干脆把home模块中的控制器和视图文件都复制到bbs模块下,竟然也不行. 这说明了控制器和视图没有问题,一定是模块的配置有问题,后来差一点要删除模块重新建了. 后来在模块的配置文件中,发现了原因,原因就是: <?php return array( //'配置项'=>'配置值' 'ACTION_SUFFIX' => 'Action', // 操作方法后缀 ); 这个妖精造成的,看来我还是不熟悉ACTION_SUFF