MVC学习系列1--什么是MVC
上面的虚线表示:被动角色。实线表示:主动角色。
1.控制器和视图:控制器和视图是双向的关系,但控制器的关系更主动。
当控制器是主动的角色的时候,控制器决定要显示哪一个View;当视图为主动角色时,视图可以决定,要将数据返回给控制器中的哪一个Action方法,并且,当数图需要数据的时候,可以决定数据应该从哪一个控制器的方法获得。
2.视图和模型:视图是主动角色,而模型则是以数据提供者的方式存在。所以视图到模型是实线,模型到视图是虚线。
视图上的数据,基本上是从控制器中的方法中传过来的。然而,传过来的数据类别,基本上是模型中定义的,所以,可以这样说:视图和模型之间,是彼此参考的关系,也就是说,视图会参考模型中的数据字典定义。
如果,视图发现,从控制器传过来的数据,不足以完整显示,这个时候,视图就会变成主动,即主动对模型,进行数据查询获得数据。也就是在上图中,看到的,视图到模型是实线。。
3.控制器和模型:控制器永远是主动的关系,控制器负责调用模型中所定义的各种数据字典,而模型只是单纯的提供数据服务,或者验证服务给控制器使用。
好了,综上所述:也就是,用户发过来的请求,首先会通过路由,路由机制,判断这个请求是,请求哪个控制器中的哪个方法,然后控制器,调用模型中的数据字典定义,获取数据之后,决定要显示哪一个视图。大概就是这么回事。
好了,现在看看,如果新建第一个MVC程序吧。
这里,我用的是VS2013,打开VS2013,选择文件--》新建--》项目
然后选择空白的模板
先好项目之后,初始化的模板是:
接着,我们自己新建一个控制器Home,修改一下默认生成的代码
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace FirstMVC.Controllers
{
public class HomeController : Controller
{
// GET: Home
public string Index()
{
return "欢迎您,这里是ASP.NET MVC";
}
}
}
接着,我们运行一下代码,就得到如图的结果,这就是我们第一个简单的不能再简单的小程序:
总结;主要理解MVC的概念。
MVC学习系列1--什么是MVC的更多相关文章
- ASP.NET MVC学习系列(4)——MVC过滤器FilterAttribute
1.概括 MVC提供的几种过滤器其实也是一种特性(Attribute),MVC支持的过滤器类型有四种,分别是:AuthorizationFilter(授权),ActionFilter(行为),Resu ...
- MVC学习系列4--@helper辅助方法和用户自定义HTML方法
在HTML Helper,帮助类的帮助下,我们可以动态的创建HTML控件.HTML帮助类是在视图中,用来呈现HTML内容的.HTML帮助类是一个方法,它返回的是string类型的值. HTML帮助类, ...
- ASP.NET MVC学习系列(二)-WebAPI请求
继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现 ...
- ASP.NET MVC学习系列(二)-WebAPI请求(转)
转自:http://www.cnblogs.com/babycool/p/3922738.html 继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的g ...
- MVC学习系列——ModelBinder扩展
在MVC系统中,我们接受数据,运用的是ModelBinder 的技术. MVC学习系列——ActionResult扩展在这个系列中,我们自定义了XmlResult的返回结果. 那么是不是意味着能POS ...
- MVC学习系列——记一次失败面试后,感想。
在此写博客之际,热烈庆祝母校苏州科技学院,正式改名为苏州科技大学. 一晃眼,从自己投身IT行业已经两年有余,期间经历了结婚.买房等人生大事,非常感谢我的老婆,谢谢她这么爱我,嫁给我这个码农,呵呵... ...
- [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参
[转]ASP.NET MVC学习系列(二)-WebAPI请求 传参 本文转自:http://www.cnblogs.com/babycool/p/3922738.html ASP.NET MVC学习系 ...
- ASP.NET MVC学习系列(二)-WebAPI请求 转载https://www.cnblogs.com/babycool/p/3922738.html
继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现 ...
- Spring MVC 学习总结(一)——MVC概要与环境配置 转载自【张果】博客
Spring MVC 学习总结(一)--MVC概要与环境配置 目录 一.MVC概要 二.Spring MVC介绍 三.第一个Spring MVC 项目:Hello World 3.1.通过Mave ...
随机推荐
- 使用CSS3 Media Queries实现网页自适应
原文来源:http://webdesignerwall.com 翻译:http://xinyo.org 当今银屏分辨率从 320px (iPhone)到 2560px (大屏显示器)或者更大.人们也不 ...
- iOS开发之多图片无缝滚动组件封装与使用
经常有园友会问"博主,有没有图片无限滚动的Demo呀?", 正儿八经的图片滚动的Demo我这儿还真没有,今天呢就封装一个可以在项目中直接使用的图片轮播.没看过其他iOS图片无限轮播 ...
- Android Toast cancel和show 不踩中不会知道的坑
说到Android Toast,几乎都很熟悉吧,下面讲讲怎么实现下面几种场景: 1.连续点击一个按钮,每次都产生一个新的Toast并且调用show方法 问题:触发了toast以后,toast内容会一直 ...
- C#基础知识五之abstract virtual关键字
abstract 用关键字abstract修饰的类叫做抽象类,且只能作为基类,也不能实例化. 用abstract定义的抽象类中不一定只包含抽象方法 ,可以包含非抽象方法. abstract定义的方法一 ...
- jquery easyui菜单树显示
目前做了一个easyui项目需要显示多级菜单,菜单配置到数据库中,因此每级菜单都需要到数据库中取,用了jQuery EasyUI方便多了. 效果体验:http://hovertree.com/texi ...
- [修正] 移动平台曲线不平滑的问题(如:TRectangle, TPath...等)
问题:从 XE4 以来,Firemonkey 曲线绘图在移动平台不平滑的问题一直令人诟病,提交到官方的 QC 也是族繁不及备载,官方似乎有意的避开这个问题,迟迟没有修正. 适用版本:XE4 ~ Ber ...
- ubuntu下常用命令(一)
1.查看目录 Ctrl+L 2.在终端下:复制命令:Ctrl + Shift + C 组合键.粘贴命令:Ctrl + Shift + V 组合键. 3.解压 tar xzf flie.tar.gz 4 ...
- file_get_contents()/file_put_contents()
PHP file_get_contents() 函数 定义和用法 file_get_contents() 把整个文件读入一个字符串中. 该函数是用于把文件的内容读入到一个字符串中的首选方法.如果服务器 ...
- IT基础架构规划方案三(IT基础软件和系统规划)
IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...
- REST服务介绍
body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } RESTful service是一种架构模式,近几年比 ...