初识MVC框架
MVC框架
是一个框架模式,它使应用程序的输入、处理和输出分开。它可以使业务逻辑、数据、界面显示分离,使得耦合度大大降低,在这一方面与“三层”思想类似。
M——Model(模型)
要处理的业务代码和数据操作代码,模型对象负责在数据库中存取数据。
注意:模型层并非是三层架构中的Model层。在三层中,Model层中是实体。而在MVC中,Model中既有业务逻辑又有对数据的各种操作代码,因此,如果非要比较的话,它更像是三层中B层与D层的结合。
V——View(视图)
主要与用户打交道的,负责数据显示
C——Controller (控制器)
Model和View之间的桥梁,它来决定决定调用哪个Model加载哪个视图。控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型去处理请求,然后再确定用哪个视图来显示返回的数据。控制器类似一个中间者,负责传话的那个人。
简单了解以后,我们来看一下如何建立一个MVC项目。如下图:
点击确定以后,新建的项目中会如下图所示:
用红色框标出的是前面所说的M-V-C,App_Data 与一般的ASP.NET
website是一样的,用于存放数据。Content 这个目录是建议用来存放一下资源文件的。例如CSS、JS、图片等等。其他的文件夹如Images、Filters就不用介绍了。
下面通过一个小例子来简单看一下MVC的神奇之处。
1、在Model文件夹中新建一个类HelloWorldController,会自动生成一个Index方法。
2、在它的Index方法中右键添加视图,名称为Index.cshtml.(cshtml是扩展名)。
3、在Model中添加Movie模型类,代码如下
namespace MvcMovie.Models
{
public class Movie
{
//稍后要在浏览器中显示的字段
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
} //负责在数据库中的操作,继承自Entity Framework的DbContext基类
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
}
4、创建数据库连接
在web.config中的<connectionStrings>中添加
<add name="MovieDBContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
5、创建一个新的类MoviesController控制器,它的作用是获取数据并使用视图将数据显示在浏览器中。
右击Model文件夹,如下图所示,图中的类都是之前动手创建的类:
运行程序,在地址栏后加上 /Movies,回车即出现下图:
单击Create New,进入添加电影页面,各字段都是之前Movies中的。
添加成功,回到VS中。在运行过程中,向Movies控制器请求,从而返回Movies电影数据库表中的所有记录,然后将结果传递给Index视图。
最后,我们看一下新添加的那一条电影信息到哪里去了。
在右面的解决方案中,找到一个以.mdf结尾的,如图
打开之后,看到十分熟悉的界面。
接着打开Movies,看到其中的数据。
小结:
对于MVC,目前只是初步的了解,还是一知半解的状态。但是跟着一个一个小Demo做,还是蛮有成就感的,期待下一步在项目中更多的实践。
初识MVC框架的更多相关文章
- .NET轻量级MVC框架:Nancy入门教程(一)——初识Nancy
当我们要接到一个新的项目的时候,我们第一时间想到的是用微软的MVC框架,但是你是否想过微软的MVC是不是有点笨重?我们这个项目用MVC是不是有点大材小用?有没有可以替代MVC的东西呢?看到这里也许你会 ...
- .NET轻量级MVC框架:Nancy入门教程(二)——Nancy和MVC的简单对比
在上一篇的.NET轻量级MVC框架:Nancy入门教程(一)——初识Nancy中,简单介绍了Nancy,并写了一个Hello,world.看到大家的评论,都在问Nancy的优势在哪里?和微软的MVC比 ...
- 开源:Taurus.MVC 框架
为什么要创造Taurus.MVC: 记得被上一家公司忽悠去负责公司电商平台的时候,情况是这样的: 项目原版是外包给第三方的,使用:WebForm+NHibernate,代码不堪入目,Bug无限,经常点 ...
- 编写自己的PHP MVC框架笔记
1.MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). ...
- 转 10 个最佳的 Node.js 的 MVC 框架
10 个最佳的 Node.js 的 MVC 框架 oschina 发布于: 2014年02月24日 (33评) 分享到: 收藏 +322 Node.js 是一个基于Chrome JavaScri ...
- 制作自己的MVC框架(一)——简单粗暴的实现
现在市面上有很多成熟的MVC框架,可以拿来直接用,但自己造一下轮子其实也挺有意思的. 下面先来看个最简单粗暴的MVC实现. 5个文件就能实现最简单的MVC,在Apache中设置一个虚拟目录,配置个简单 ...
- 分享一实战性开源MVC框架<Linux、Windows跨平台开发so easy>
一.引子 开源地址 https://github.com/564064202/Moon.Mvc 欢迎加入开发 .NET Core微软还在发力,但作为商用还有一段距离,很多开发库尚不能用于.NET ...
- 产品前端重构(TypeScript、MVC框架设计)
最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容. 公司期望把某一管理类信息系统从项目代码中抽取.重构为一个可复用的产品.该系统的前端是基于 ExtJs 5 进行构造的, ...
- 请求如何进入ASP.NET MVC框架
一.前言 对于WebForm开发,请求通常是一个以.aspx结尾的url,对应一个物理文件,从代码的角度来说它其实是一个控件(Page).而在MVC中,一个请求对应的是一个Controller里的Ac ...
随机推荐
- 第4章 初识STM32—零死角玩转STM32-F429系列
第4章 初识STM32 集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资 ...
- 一句话说明==和equals的区别
public class equals { public static void main(String[] args) { int x=10; int y=10; String str1=new S ...
- Delphi的Edit控件中只能输入数字且只能输入一个小数点
使用这种功能必须使用 OnKeyPress 事件,该事件是在窗体中获得键盘输入的焦点,并且在用户按键时发生.OnKeyPress 事件中有个重要参数:Key.Key 参数为Char 型,它能够获得用户 ...
- poj_3641_Pseudoprime numbers
Fermat's theorem states that for any prime number p and for any integer a > 1, ap = a (mod p). Th ...
- js jquery 权限单选 bug修改以及正确代码 购物车数量加减
效果图废话不多直接上代码 用的avalon渲染,其实都是一样的 <div class="shop-arithmetic"> <a href="javas ...
- js | javascript改变style样式和css样式
转载 在很多情况下,都需要对网页上元素的样式进行动态的修改.在JavaScript中提供几种方式动态的修改样式,下面将介绍方法的使用.效果.以及缺陷. 1.使用obj.className来修改样式表的 ...
- java @override 全部报错
问.java @override 全部报错 答: 错误:在 eclipse 的新工作空间开发项目时,出现大面积方法编译错误.鼠标放在方法名上后显示让我们去掉 @override 注解 原因: @Ove ...
- 《Python语言及其应用》学习笔记
第二章 ========== 对象的类型决定了可以对它进行的操作.对象的类型还决定了它装着的数据是允许被修改的变量(可变的),还是不可被修改的常量(不可变的). Python是强类型的,你永远无法修改 ...
- 【机器学习算法基础+实战系列】SVM
概述 支持向量机是一种二分类模型,间隔最大使它有别于感知机.支持向量机学习方法由简至繁的模型:线性可分支持向量机(linear support vector machine in linearly s ...
- python+scrapy环境搭建步骤描述
Python3(3.5.4)搭建爬虫系统步骤描述: 1.下载python安装包,路径:https://www.python.org/downloads/windows/ 选择3.5.4版本64位的安 ...