就像是.NET Framework WebApi与.NET Core WebApi一样,.NET Framework MVC与.NET Core MVC的区别,也是框架的之间的区别。本系列先首先从.NET Framework MVC介绍,后面再去介绍.NET Core MVC

狭义MVC:

  MVC是web开发框架

  M:Models,数据的传递模型,普通的实体

  V:View,用户看到的视图模型

  C:Controller,决定用户使用哪个视图,还能调用逻辑计算,里面的方法叫Action

广义MVC:

  Model、VIew、Controller

  V:界面

  C:控制,把M和V连接起来

  M:数据和逻辑

  程序的设计模式,一种设计的理念,可以有效的分离界面和业务。

首先,建立一个FirstController,

public class FirstController : Controller
{
public ActionResult Index()
{
return View();
}
}

返回类型还有ViewResultBase、ViewResult、JsonResult、FilePathResult等,其实这些都继承了ActionResult。

WebApi是返回数据的,为啥都不都用MVC算了?其实不管是aspx/ashx/WebApi/MVC,都是使用Http协议的,所以一切的请求都可以实现的。

Aspx:属于比较重的,默认有页面的生命周期---前后端融合,ViewState---跟C/S是一一对应的

ashx:属于轻量级的,没有页面的概念

MVC:前后端分离的,C可以任意指定视图,可以踢桃后台多态UI

WebApi:准人做专事,管道都是独立的;RESTFul,没有action的概念。但是在.NET Core中,二者又融合管道了。

传值的方式:

ViewData字段传值,里面是object,需要类型转换。ViewBag,是dynamic传值,可以随便属性访问,运行时检测。以上二者都是会覆盖的,后者为准。Model。传值,适合复杂数据的传递,强类型。TempData,临时数据,可以跨Action后台传递,存在Session里面,用一次就清理掉。

MasterPage,Layout,默认是_layout,可以自行指定。

Global。asax,全局式。

public class MvcApplication : System.Web.HttpApplication
{
private Logger logger = new Logger(typeof(MvcApplication));
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles); this.logger.Info("网站启动了。。。");
} }

Application_Statr()全局启动时执行,且执行一次,非常适合做初始化,也可以静态构造函数。还可以有很多别的。

dynamic是个动态类型--运行时检测--编译时随便你写
利用委托的,性能比反射高,可以提供便利
弱类型语言的特点,方便做一些特殊处理

最新文章

  1. [Window Title] (没有登录) [Content] ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 [OK]
  2. ASP.NET MVC 控制器激活(三)
  3. python(28)获得网卡的IP地址
  4. PC互联网和移动互联网的本质差别
  5. [转自51CTO]ITIL与ISO20000的关系
  6. [转载]eclipse中设置文件的编码格式为utf-8
  7. textContent、innerText的用法,在文档中插入纯文本
  8. datatables使用总结篇
  9. 九度OJ 1086 最小花费--动态规划
  10. hdoj 2601(判断N=i*j+i+j)
  11. 《Programming WPF》翻译 第6章 2.资源与样式
  12. 使用live delegate on解决js后装html故障问题
  13. JavaScript之事件处理详解
  14. webpack 安装流程
  15. 【Swift 4.0】iOS 11 UICollectionView 长按拖拽删除崩溃的问题
  16. 关于noip2017的感想
  17. 分布式事务Hmily TCC源码--学习整合
  18. June 14. 2018 Week 24th Thursday
  19. Windows Server 2012 RS 配置IIS8.0+发布网站
  20. git+gitolite如何实现权限控制

热门文章

  1. SpringCloud的入门学习之概念理解、Ribbon负载均衡入门
  2. Elasticsearch 6.x版本全文检索学习之数据建模
  3. [Spring cloud 一步步实现广告系统] 10. 使用Ribbon 实现微服务调用
  4. 操作系统篇之Linux命令操作和redis安装以及基本使用
  5. SSM框架之spring(1)
  6. fluwx使用的问题
  7. viewPager作为RecyclerView的itemView出现的显示问题
  8. python2 和 python3共存的常见使用(如安装虚拟环境的问题)
  9. Linux系统学习 五、网络基础—网络通信协议
  10. STL 中 string 的使用