博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC3 - 控制器
阅读量:5278 次
发布时间:2019-06-14

本文共 1269 字,大约阅读时间需要 4 分钟。

摘要:

控制器的角色

控制器简史

示例应用程序:MVC Music Store

控制器基础

1.控制器的角色

定义:MVC模式中的控制器主要负责响应用户的输入,并且在响应时通常会修改模型。通过这种方式,MVC模式中的控制器主要关注的是应用程序流,输入数据的处理,以及对相关视图输出数据的提供。

理解MVC模式:MVC提供的是方法调用的结果,而不是动态生成的(又名脚本)页面。

ASP.NET Web Form是一种基于事件的系统,这在Web应用程序平台中是独一无二的。它拥有一个强大的基于控件并由事件驱动的编程模型,从而为开发人员提供了一个组件化的GUI。

事件驱动流程:客户端提交请求—服务端响应请求—ASP.NET重建整个控件层次结构—解释请求—利用请求内容去恢复应用程序中当前用户状态(本质是因为Web是无状态的)

应用MVC模式要求Web应用程序的每一个用户输入只采用请求的方式。如ASP.NET MVC中每个请求都被路由到控制器的一个方法,该控制器全权负责解释这些请求,如果必要还要操纵模型,通过响应选择一个视图反馈给客户。

2.控制器基础

/Store/Browse?Genre=Disco 方式传参

HTML编码的用户输入:利用实用方法HttpUtility.HtmlEncode来预处理用户输入,这能阻止用户向视图中用链接注入JS代码或HTML标记。比如/Store/Browse?Genre=<script>window.location='http://...'</script>

public string Browse(string genre){    // return "Hello from Store.Browse()";    string message =    HttpUtility.HtmlEncode("Store.Browse, Genre = " + genre);    return message;}

/Store/Details/5方式 传参

当操作方法中有名称为ID的参数,则ASP.NET MVC将会自动将操作方法名称后面的URL片段作为名称ID的参数传进来(ASP.NET MVC的默认路由约定)

public string Details(int id){    //return "Hello from Store.Details()";    string message = "Store.Details, ID = " + id;    return message;}

 

控制器感觉是Web浏览器直接调用控制器类中的方法,这极大的简化忽略了下面的细节:

  • 路由将URL映射到操作的方式
  • 将视图作为模板生成向浏览器返回的字符串(通常是HTML格式)
  • 操作很少返回原始的字符串;它通常返回合适的ActionResult来处理像HTML状态码和调用视图模板系统这样的事项

 

转载于:https://www.cnblogs.com/KevinG/p/3560613.html

你可能感兴趣的文章
使用HTML语言和CSS开发商业站点(7)
查看>>
第四章例4-3
查看>>
O the joy of having nothing / 아무것도 갖지않고
查看>>
[COURSE_PTHE] 19. 密码学
查看>>
IOS平台开发学习笔记
查看>>
如何组织Html元素与如何进行CSS命名(上)
查看>>
快照枚举进程/直接枚举进程
查看>>
列印到一半馬達失步!! 怎麼辦?
查看>>
MVC 菜鸟学习记录1
查看>>
hash code、equals和“==”三者的关系
查看>>
js绑定事件方法:addEventListener的兼容问题
查看>>
马尔可夫模型
查看>>
程序员的激情其实是一种痛苦
查看>>
西门子 S7-300 PLC 从入门到精通的100个经典问题
查看>>
WPF总结
查看>>
LeetCode--递归问题:70. Climbing Stairs
查看>>
二、Python 数据类型
查看>>
用border做一个移动端常见的返回按钮
查看>>
SharePoint【Ribbon系列】-- 08.在Site上创建(或隐藏)Ribbon Tabs
查看>>
我的第一个Angular2应用
查看>>