mvc基础

MVC的基本概念

1:MVC 分别是 Model—View-Controller

2:  MVC就是将应用程序划分为3大组件:模型、视图、控制器

3:JAVA里面的STRUTS2也是一种MVC模型,因此MVC不是ASP.NET所特有的

4:ASP.NET MVC从2008年发布1.0版本,2014年发布了MVC 5.0

MVC之间相互的关系

1:在控制器中可以直接调用视图和模型

2:在视图当中可以直接调用模型

3:在模型中不可以调用视图

4:模型能够限定视图中使用的数据,但视图中使用的模型应该由控制器控制

5:在视图中可以调用控制器(通过视图中点击链接的方式或者视图中的表单提交)

MVC与Web Form比较

二者都是基于ASP.NET Web框架构建的开发模型,所以ASP.NET平台中的一些功能可以两者通用。

Webform的Url地址是基于文件系统的,MVC则是基于Action(行为)

ASP.NET MVC优点

1:关注点分离

2:易于测试

3:易于维护

ASP.NET MVC缺点:(相对于Web Form而言)

开发成本更高,主要是一个时间上的成本

App_Data:这个目录一般用来保存数据

App_Start用来存放各种配置文件的

Content:这个目录建议存放资源文件,比如css,js,图片

Models:这个目录存放你的业务实体,数据访问层代码的类

Controllers:这个目录是建议将Controller类都放到这里来

Views:在默认情况下,所有的view(视图)文件都必须放到这个目录下边,每一个Controller对应一个子目录,而且子目录的名称必须以Controller 的命名一样,

例如:HomeController那它对应的目录就必须叫Home

ASP.NET MVC中的约定

1:所有控制器必须放到Controllers文件夹下面

2:控制器名称必须以Controller结尾

3:所有的控制器类都应该继承自Controller类(本质上就是要继承IController接口)

4:当url访问的时候如果没有找到给定名称的路径,那么它会到Views下面所有文件夹去查找相同action名称的视图文件

5:在控制器中的public方法被称为Action(行为)

6:控制器下面的action如果不想被url访问到,那么有两种方式:第一种:改变访问级别(只要不是public都不能被访问),第二种给方法加标记:[NonAction]

7:在Action中return view(),默认返回和Action名称一样的视图文件

8http://localhost:2213/Login/Index/1 数值1会自动映射到action中的参数id

 

9:在Global.asax全局应用程序类中注册了默认路由(名称为Default),默认路由指定了Controller默认为Home, Action为Index,参数id为可选参数

 

Razor视图基本语法:

Controller与view之间的数据传递

ViewBag:是一个动态类型的属性,在mvc3.0中才加入了viewbag属性

动态类型:dynamic,就是可以事先不为其定义属性,通过直接给属性赋值的方式就可以随时为它添加新的属性

原文地址:https://www.cnblogs.com/tdmins/p/9845585.html