MVC系列之一 入门概述
一 概述
MVC作为一种当前比较好的开发web的框架,不得不提一下了,和WebForm比较来看,有了很大的进步和改进。
先进行一个简单的比较,两个都是Web开发框架,理念仍然是较快速开发。
不过MVC已经几乎摒弃了臃肿的服务端控件,采用更为简洁和可定义的标签形式。前台View视图和后台Controller控制器弱耦合分离的形式,比Asp.Net前台后台采用继承的紧耦合形式更加灵活和合理。
二 基本三元素介绍
MVC不得不说的三个主要元素,就是Model,View,Controller这三个元素。下面简单地一一介绍下:
Model:这是主要负责数据库和Controller控制器交互
View视图:这是主要负责展示Controller传输给他的数据
Controller控制器:主要接受Model传过来的数据,然后传给View
画个图吧,好看些
BLL,DAL,Models是简单三层的概念,写出来防止大家把Model和Models弄混了,这里的Model可是包括了这三个的
三 创建一个简单的项目Demo
在这里,我还是比较喜欢使用项目来学习,理论讲一部分就好了,更多的理解,就通过项目来学习吧
环境:
VS2010时需要去下载独立的MVC安装包的,不是很复杂,百度可以告诉你一切
VS2012时就不需要下任何安装包了,直接就可以新建MVC项目了
然后选择MVC 4,创建一个空白的MVC项目就可以了,凡事从简单入手嘛!
看到这个目录,里面很简单,除了之前讲的三个基本元素,View,Controller,Model ,剩下的App_Data放私有权限的东西,比如数据;App_Start存放的一些重要的初始化类,后面再详细讲;Global.asax是应用程序文件,主要负责管道事件,后面详细讲;剩下的几个config就是简单的配置文件;
四 Controller控制器
在Controllers右键添加控制器,默认使用HomeController,注意:后缀一定要是Controller,在MVC有时候约定大于配置,某些约定的配置就是这么默认的,不要轻易更改。
请注意,这里开始讲解配置会比较多,理念的理解还是主要是开头的理念,Controller的作用这里就不再累赘了。
在新建的Controller里面有一个,Index,这是其中的一个Action的名字,在这里Action的含义是动作,可以理解为页面的各种动作,Index就是默认的一个动作。
在Index上面右击,添加视图,视图的名字默认和Action是一样的,不用修改,目前选择使用Aspx视图引擎,先不要模版。
添加后跳到了Index.aspx页面,这是一个HTML的世界,当你习惯性地打开工具箱的时候,你会发现,工具箱中的控件少得可怜,没有那些强大的服务端控件,没有了那些拖慢了aspx页面的服务端控件,剩下的只有简单的html。
让我们简单的写点上去,Hello World必须写,你懂的,运行起来吧小宇宙。。。。。
这里要看到一个:URL地址,默认其实是localhost:7777,我现在写的是补全后的地址。
Home是我们的控制器的名字,Index是我们Action的名字,相信朋友们应该发现一点MVC的奥秘了吧
对,没错,你们想得没错,MVC在这里的里面,是用 Controller+Action 确定访问地址,简单粗暴,嘿嘿....
五 Controller+Action
刚才讲到了访问地址,下面呢,我们再讲一点,页面跳转的知识,后面我们再进行别的问题的深入。
在刚开始学习MVC的时候,对Controller和Action的理解一般都会比较模糊,下面的几个例子来看下:
在Home控制器下新建一个Action
并且添加视图,在新建的试图里面写点东西
回到我们的Index视图中,
运行,点击我们的Link to MyAction
在此看地址,已经更改了,其实这种没有后缀的形式,在<a>的链接属性方面还是没有什么差别的。
再来看一个,更强大的东西,传说中的HtmlHelper:
<div>
Hello World,MVC,I'm JamesZhu.
<hr/>
<a href="/Home/MyAction">Link to MyAction</a>
<hr/>
<% Html.ActionLink("Link to MyAction", "MyAction", "Home"); %>
</div>
可以达到同样的效果,嘿嘿,Html这是一个很强大的东西,后面再深入讲,今天写到这里了,嘿嘿
四 总结
稍微总结下,这篇文章,主要时候有一定web开发经验,熟悉html前端,以及asp.net,然后又想学习mvc的朋友,可以借鉴下。
声明
本文主要是个人学习MVC后的一些经验以及看法,仅供参考,如有错误,欢迎指正,谢谢。
个人感觉:在学习MVC之前,最好有以下知识储备:HTML,Jquery,Ajax,Asp.Net等技术基础
MVC系列之一 入门概述的更多相关文章
- Spring MVC系列-(1) Spring概述
1. Spring概述 本章主要介绍Spring中的体系结构和常见概念,比如bean.控制反转(Inverse of Control,IoC)等. 1.1 体系结构 Spring 框架提供约 20 个 ...
- ShoneSharp语言(S#)的设计和使用介绍系列(4)— 入门概述
ShoneSharp语言(S#)的设计和使用介绍 系列(4)- 入门概述 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- EF和MVC系列文章导航:EF Code First、DbContext、MVC
对于之前一直使用webForm服务器控件.手写ado.net操作数据库的同学,突然来了EF和MVC,好多新概念泉涌而出,的确犹如当头一棒不知所措.本系列文章可以帮助新手入门并熟练使用EF和MVC,有了 ...
- MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)
前言:最近一段时间在学习MVC源码,说实话,研读源码真是一个痛苦的过程,好多晦涩的语法搞得人晕晕乎乎.这两天算是理解了一小部分,这里先记录下来,也给需要的园友一个参考,奈何博主技术有限,如有理解不妥之 ...
- Apache Shiro系列之五,概述 —— 配置
Shiro设计的初衷就是可以运行于任何环境:无论是简单的命令行应用程序还是复杂的企业集群应用.由于运行环境的多样性,所以有多种配置机制可用于配置,本节我们将介绍Shiro内核支持的这几种配置机制. ...
- Apache Shiro系列四,概述 —— Shiro的架构
Shiro的设计目标就是让应用程序的安全管理更简单.更直观. 软件系统一般是基于用户故事来做设计.也就是我们会基于一个客户如何与这个软件系统交互来设计用户界面和服务接口.比如,你可能会说:“如 ...
- .NET 4 并行(多核)编程系列之一入门介绍
.NET 4 并行(多核)编程系列之一入门介绍 本系列文章将会对.NET 4中的并行编程技术(也称之为多核编程技术)以及应用作全面的介绍. 本篇文章的议题如下: 1. 并行编程和多线程编程的区别. ...
- Easyui + asp.net MVC 系列教程 完成登录
Easyui + asp.net MVC 系列教程 第09-17 节 完成登录 高清录制 前面八节 在这里 Easyui + asp.net mvc + sqlite 开发教程(录屏)适合入门 在接下 ...
- Spring mvc系列一之 Spring mvc简单配置
Spring mvc系列一之 Spring mvc简单配置-引用 Spring MVC做为SpringFrameWork的后续产品,Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块 ...
随机推荐
- HDU 1724 Ellipse(数值积分の辛普森公式)
Problem Description Math is important!! Many students failed in 2+2’s mathematical test, so let's AC ...
- Android异步任务AsyncTask
package com.example.asynctask; import java.net.MalformedURLException; import java.net.URL; import an ...
- JS获取项目根目录
function getRootPath(){ //获取当前网址,如: http://localhost:8088/test/test.jsp var curPath=window.document. ...
- sql except 用法,找两个表中非共同拥有的
;with tt as (select a.id as id from [dbo].[1234] a where a.id not in (select a.ProtocolID from Proto ...
- json和字符串/数组/集合的互相转换の神操作总结
一:前端字符串转JSON的4种方式 1,eval方式解析,恐怕这是最早的解析方式了. function strToJson(str){ var json = eval('(' + str + ')') ...
- [php] 使用IDE的正则搜索代码
([^a-zA-Z_=$0-9/\[\>])('|"|,)?(\s*)store_banner(\s*)('|"|,)?([^a-zA-Z_=$0-9\/\(\]:]) 用在 ...
- Visual studio 中编译错误SQL71006: Only one statement is allowed per batch. A batch separator, such as 'GO', might be required between statements.
把写好的sql脚本,并在mssqlmanager里面编译成功的存储过程脚本复制到vs项目下,出现错误信息如下:SQL71006: Only one statement is allowed per b ...
- OpenStack fuel-web不可用解决办法
Contents [hide] 1 为增加一台计算节点 2 磁盘清空 3 启动占用8001端口的进程 4 启动占用5432端口的进程 为增加一台计算节点 打开fuel-web,发现无法打开,弹出ngi ...
- HorizontalScrollView水平滑动
xml布局 <HorizontalScrollView android:id="@+id/hsv" android:layout_ ...
- nginx 优化
隐藏nginx版本号:在http标签内写server_tokens off; 隐藏apache版本号:ServerTokens Prod ServerSignature Off 更改nginx默认的用 ...