发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
MVC在底层和传统的asp.net是一致的,在底层之上,相关流程如下:
1)Global.asax里,MvcApplication对象的Application_Start()事件中,调用 RouteConfig.RegisterRoutes(RouteTable.Routes); 来注册路由规则。
2)RouteConfig.RegisterRoutes()方法里,给出的默认规则为 {controller}/{action}/{id} .
a. 在有特别需要的时候,到这里来修改规则。
b. 未指明Controller默认为HomeContoller,未指定Action默认为Index, 也就是说,直接访问站点时,会默认导航到HomeController下的Index Action.
c. Action后跟的内容会被映射为名为id的参数。 比如: User/Delete/1 会匹配到 UserController的 Delete(int id) 方法。
d. Action分为[HttpGet]和[HttpPost]两种,与HTTP的GET和POST方式对应。 即直接请求的URL只会匹配[HttpGet]方法,而未注明[HttpPost]的方法即默认为[HttpGet]. Post的Action一般会有一个Model参数,MVC会自动将表单里的数据按约定的规则填充到Model实体对象里。 这个约定的规则,就是表单的Name与属性名称有个对应规则。
3)MVC负责按上述规则将执行流程导入合适的Action中,即Controller的某个方法中。
4)Action中,可以直接返回字符串,输出到浏览器, 也可以返回到ActionResult对象, 该对象指向一个View页面,并且附带了一些属性作为传递数据的容器。
ActionResult通常通过调用Controller对象的View(…)方法得到,也可以通过Redirect()方法或RedirectToAction()方法得到, 不过后面两种方法主要用于跳转到其它Controller,因为后面的方法不能传递Model对象。 Action向View传递数据,可以通过Model、ViewBag或ViewData三种容器,其中Model是强类型的,所以是最优先的方式。
5)View中,会先执行本身,再执行模板页和子页, 但是执行顺序和页面内容的输出顺序并不一致。模板中后输出的内容可以在页面中先输出的内容的前面.
在View中,需要提交数据,或跳转页面里,均会通过Route导向某个Controller的Action。 View中向Action中传递数据,其最终原理是通过http的GET和POST等方式(含AJAX的), POST方式会通过上面提到的约定规则,将表单中的数据填充到Model参数对象中。 在Action中,可以访问通过参数传递进来的Model对象,也可以访问原始的Request对象中的QueryString参数或Form集合, 当然Model对象是优先的方式。
来自: 昵称10504424 > 《工作》
0条评论
发表
请遵守用户 评论公约
MVC构架(4)
MVC构架(4)基于Stuts的MVC模型Struts是Apache组织的一个项目,像其他的Apache组织的项目一样,也是开放原码项目。它是一个比较好的MVC框架提供了对开发MVC系统的底层支持,采用的主要技术是ServletJSP...
表现层框架Struts/Tapestry/JSF架构比较
Struts/Tapestry/JSF是目前J2EE表现层新老组合的框架技术。从诞生时间上看,Struts应该比较早,使用得非常广泛, Tapestry 3.0逐渐引起广泛的重视,正当Tapestry即将大显身手时期,SUN推出JSF标准技术...
Struts用户手册翻译(1)
Struts用户手册翻译(1)1.3 Struts的流程控制。Struts配置(和另外一些东西)定义了应用中使用的ActionMapping[org.apache.struts.action.ActionMappings]。控制器servlet得到或者建立ActionForm bean...
WebAPI下的如何实现参数绑定
实际上,WebAPI使用model binding读取查询字符串(query string)内容进行参数绑定,使用Formatters读取主体内容。id=123 void Action(int id, Customer c) // 参数id从query string中读取,参数c是一个...
[ASP.NET MVC 小牛之路]09 - Controller 和 Action (1)
本篇介绍 Controller 的实现、Controller 对状态数据的获取、ActionResult 和 Action 的数据传递,后续将介绍 Controller 工厂、Action ...
后台参数验证的几种方式
关于Framework、Library和MVC的一点感悟
关于Framework、Library和MVC的一点感悟。总之,构成程序的将不再是一行行独立的代码,而是不同模块相互堆叠和包含,这就是所谓“模块化编程”,而对于主程序逻辑来说,已经封装好的模块A、B、C、D、E...
浅谈Flux与MVC
浅谈Flux与MVC。现在假设有这样的场景,用户想查看自己的profile页面,可能会有这样的流程:在页面上点击profile按钮,接下来就是一个HT...
asp.net MVC 的处理流程
asp.net MVC 的处理流程。将RoutData与HttpContext合并成为RequestContext传递到IRoutHandler接口,IRoutHandler接口的实现类MvcRouteHa...
微信扫码,在手机上查看选中内容