浅谈MVC基础
ASP.NET MVC :UI层框架
让我们的web开发又回到了本质:请求,处理,响应
MVC本身是一种思想,将程序分成三个模块
Model:模型 广义的说法(包含DAL BLL MODEL)
View:视图 展示结果
Controller:控制器
MVC的思想是可以跨平台的,在很多的平台上都是实现了自己的MVC框架,JAVA平台上有一个Struts ,Spring MVC
程序员和美工的职责:将数据的获取和数据的展示分离
MVC的开发步骤:
- 创建控制器(在Controler文件夹下添加控制器)
约定:
控制器其实就是一个class,但需要满足三个条件:
- 命名规范,所有的控制器必须以Controller结尾
- 所有的控制器类必须实现IController接口(继承关系,控制器类---àController---àControllerBase-àIController接口
- 必须是非静态类
[注解]:一个控制器中可以包含多个方法。
- 设计控制器中具体的Action方法(处理请求)
- 为Action方法处理后添加视图
视图名称的约定:
视图名称和对应的Action方法的名称一样。
MVC的访问地址:
Http://localhost:端口号/控制器的名字/Action方法的名字/参数 (逻辑地址)
在MVC中第一次引入了路由组件,进行了URL地址的拆分。路由规则可以由开发人员重新定义,即可以进行URL地址的重写。
Model的职责:负责业务处理
控制器中Action方法的职责:
- 接收用户请求
- 调用业务方法,获取业务处理结果
- 将处理后的数据指定视图展示并向视图传递
控制器中如何获取请求的参数?
方法一:直接通过Request对象获取。
方法二:在Action方法中设置一个FormCollection类型的参数接收请求数据。(只能接收表单post提交的参数)
方法三:直接在Action方法中设置和提交的参数名(name属性)一致的参数,MVC的底层会完成参数的自动装配。
【注】
每个控制器都对应在Views文件夹下有一个和控制器同名的子文件夹,在该文件夹下存放某个控制器对应的所有视图文件。
控制器中可以通过view(“视图名称”)来指定具体的视图,如果不指定则默认找和Action方法同名的视图。
Views文件夹下还有一个Shared文件夹,该文件夹专门定义所有控制器公共的视图(例如:处理错误页面。)
视图必须通过控制器才能访问,不能通过在浏览器中输入某个视图的URL地址直接访问。
控制器如何向指定视图展示数据?
控制器和视图直接有数据传输通道:
ViewData视图容器 key value
浅谈MVC基础的更多相关文章
- 浅谈 MVC 和 MTV
浅谈 MVC 和 MTV 一.MVC M:model,模型,就是数据模型,负责数据的存取: V:view,视图,负责页面的展示逻辑: C:controller,控制器,负责业务逻辑的处理: 二.MTV ...
- 开发技术--浅谈python基础知识
开发|浅谈python基础知识 最近复习一些基础内容,故将Python的基础进行了总结.注意:这篇文章只列出来我觉得重点,并且需要记忆的知识. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对 ...
- 浅谈MVC、MVP、MVVM
MVC M: Model 模型——数据 (对于前台而言例如:ajax.jsonp等从后台获取数据的) V: View 视图——表现 ...
- 浅谈MVC Form认证
简单的谈一下MVC的Form认证. 在做MVC项目时,用户登录认证需要选用Form认证时,我们该怎么做呢?下面我们来简单给大家说一下. 首先说一下步骤 1.用户登录时,如果校验用户名密码通过后,需要调 ...
- 浅谈MVC
一.MVC的产生之源 MVC是Model.View.Controller这三个英文单词的缩写,从这三个单词的含义中我们可以看出MVC的核心是什么?显而易见,Model指的是模型,在某些地方你也可以理解 ...
- 浅谈MVC中的service层(转)
概述 mvc框架由model,view,controller组成,执行流程一般是:在controller访问model获取数据,通过view渲染页面. mvc模式是web开发中的基础模式,采用的是分层 ...
- 以用户注册功能模块为例浅谈MVC架构下的JavaWeb开发流程
JavaWeb应用开发,撇开分布式不谈,只讨论一个功能服务应用的开发,无论是使用原生的Servlet/JSP方案,还是时下的SSM架构,都有一套经过工程实践考验的最佳实践,这综合考虑了团队协作.项目管 ...
- 浅谈MVC Razor基本语法
首先说下MVC,mvc已经不用ViewState来保留网页的状态,所以大部分依赖ViewState的功能都将无法使用, 比如gridview的分页与排序,page trace等利用viewstate记 ...
- 浅谈MVC和MVVM模式
MVC I’m dating with a model… and a view, and a controller. 众所周知,MVC 是开发客户端最经典的设计模式,iOS 开发也不例外,但是 MVC ...
随机推荐
- django 基础框架学习 (二)
Django框架基础-02 Django缓存cookie 1.说明 当我们服务器在响应数据的同时,希望写⼊⼀些缓存数据到客户端 我们可以选择在响应的同时,将要写⼊到客户端的 ...
- phaser小游戏框架学习中的屏幕适配
这篇博客主要讲一下上一篇博客的右侧和底部出现的问题.就是页面会有偏移量.说一下这个产生的原因吧. 一开始在构建html页面的时候,习惯性的在页面中加了 <meta name="view ...
- numpy方法介绍
三.numpy系列 1.np.maximum:(X, Y, out=None) X 与 Y 逐位比较取其大者: 最少接收两个参数 h=[[-2,2,10],[-5,-9,20]] hh=np.maxi ...
- 牛客寒假算法基础集训营1 D 小a与黄金街道
链接:https://ac.nowcoder.com/acm/contest/317/D 首先被数学题吓到了.gcd(n,x)==1 那么必定有 gcd(n,n-x)==1 证明略. 并且两个人的对答 ...
- opencv-视频分解图片
1.加载视频2. info信息 3. 解码,parse方法解析视频 4. imshow展示或者保存imread # 视频分解图片 # 1 load 2 info 3 parse 4 imshow im ...
- jenkins在windows系统下部署安装,使用
首先需要从官网上下载下来war包,让进入tomcat中 启动tomcat,然后可以看一堆日志 再在网站输入 localhost:8080/jenkins就会进去下面界面: 会出现上面状况: 需要进入: ...
- Liunx php函数 smtp 发送邮件
1. 查看防火墙是否开放端口 默认smtp 25 iptables -L -n 如果没有,添加25端口 iptables -A INPUT -p tcp --dport 25 -j ACCEPT ip ...
- 查询多列得到map与查询得到po对象
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; i ...
- mybatis用法
转载:https://www.cnblogs.com/xdp-gacl/p/4261895.html 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架 ...
- 用HTMLParser解析html时报错:No module named 'htmlentitydefs'
python3.6用HTMLParser解析html时报错 No module named 'htmlentitydefs'或No module named 'markupbase' 先上代码 fro ...