1.为什么ASP.NET需要MVC?

  因为随着网站的的数量级越来越大,原始的网站方式,这里指的是WebForm,在运行速度和维护性方面,以及代码量上面,越来越难以满足日益庞大的网站维护成本。代码的重构方面也会受到限制,传统的方式每次进入一个动态页面都要进行一次渲染,走完一次页面的“生命周期”。我们越来越发现,如果代码量过多的话,有时候为了走完一次“生命周期”的话,会花费更多的时间去等待。如果我们 有这么一种思想:“所有的代码逻辑在页面载入的时候都处理完成“,我们显示的东西只是处理返回后的结果,让页面彻底的脱离代码逻辑就好了,那样我们每次载入的时候,程序就没必要考虑那么多的逻辑代码,因为它只要改变业务模型层里的数据就行了,那样无论数据量多么的庞大,我们只要在业务逻辑层里面处理完了就OK了,我们显示出来的,只是模型层里不断变化的数据,这样就节约了页面的数量级,总之一句话:MVC的诞生是为了适应网站不断增长的数量级而应运而生的一种设计模式。

2.什么是MVC?

  什么是MVC呢?M-Model 模型层,V:视图层,C-控制层。下面简述这3者的关系,由于ASP.NET引入了路由机制,我们是通过路由产生动态页面,我们首先由路由表里面的{controller}找到控制器里对应的控制层,路由的第二个参数是{Action},第三个是可选参数,可以是形式参数,比如id=2首先来说一下模型层,模型层是直接和数据互通的,数据库里的数据可以填充到模型层里面。控制层:控制层是写逻辑代码的地方,其实控制层和模型层并没有特别区分的地方,因为模型层是控制层里逻辑代码的一部分,我们通过一些方式可以让模型层里面填充数据,然后在控制层里面进行一系列的计算操作,然后控制层再把计算到的结果返回给视图层。视图层:把控制层返回到的模型结果,填充到视图里面去,通过一系列的RAZOR语法,进行解析生成静态的HTML页面,说白了,就是一个简单的呈现结果。

其中要注意,一个ActionResult只能对应一个视图页面。

3.MVC的工作原理

  首先通过路由确定控制层和所对应的Action以及Action对应的视图,通过控制层里面的逻辑代码,让模型层里填充数据,再确定视图层所呈现的模型,把ActionResult返回给视图层。然后填充了数据的视图层就会以最终的结果呈现给我们。 一次MVC的生命周期就走完了。

简述ASP.NET MVC原理的更多相关文章

  1. ASP.NET MVC原理

    仅此一文让你明白ASP.NET MVC原理   ASP.NET MVC由以下两个核心组成部分构成: 一个名为UrlRoutingModule的自定义HttpModule,用来解析Controller与 ...

  2. ASP.NET MVC 原理

    我出了份卷子做面试题,其中之一就是要求说说ASP.NET MVC的原理.感觉太空泛了,谁能说得准呢? 但是,如果站在我这个面试官立场,面试题好多时并不要求有标准答案,可能也没有什么标准答案,主要是通过 ...

  3. 仅此一文让你明白ASP.NET MVC原理

    ASP.NET MVC由以下两个核心组成部分构成: 一个名为UrlRoutingModule的自定义HttpModule,用来解析Controller与Action名称: 一个名为MvcHandler ...

  4. 【转】仅此一文让你明白ASP.NET MVC原理

    原文地址:http://www.cnblogs.com/DotCpp/p/3269043.html ASP.NET MVC由以下两个核心组成部分构成: 一个名为UrlRoutingModule的自定义 ...

  5. 仅此一文让你明白ASP.NET MVC 之View的显示(仅此一文系列二)

    题外话 一周之前写的<仅此一文让你明白ASP.NET MVC原理>受到了广大学习ASP.NET MVC同学的欢迎,于是下定决心准备把它写成一个系列,以满足更多求知若渴的同学们.蒋金楠老师已 ...

  6. ASP.NET MVC 之View

    仅此一文让你明白ASP.NET MVC 之View的显示(仅此一文系列二)   题外话 一周之前写的<仅此一文让你明白ASP.NET MVC原理>受到了广大学习ASP.NET MVC同学的 ...

  7. Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门

    一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数 ...

  8. ASP.NET MVC学习目录

    一.ASP.NET MVC原理详解 1.了解MVC架构模式 3.学习ASP.NET MVC的必备语言知识 4.MVC中的razor语法详解 5.ASP.NET MVC路由系统机制详细讲解 6.ASP. ...

  9. ASP.NET MVC 5 Web编程2 -- URL映射(路由原理)

    本章将讲述ASP.NET MVC5 的路由原理,即URL映射机制. 简单点就是解释:为什么MVC在浏览器输入地址就能访问到类(或类中的方法)?这是怎么做到的?我自己可以通过.NET写出一个自己的MVC ...

随机推荐

  1. DAO模型

    DAO模型 前面我们在使用JDBC时解决的都是一些很简单的问题,例如登录,注册等等,所以有些例直接把代码写在了main方法中.这种写法很容易出现代码臃肿,耦合度高,不能模块化开发等诸多弊端,特别是将来 ...

  2. Android课程---关于Service的学习(后台运行)

    MainActivity.java package com.hanqi.test2; import android.content.ComponentName; import android.cont ...

  3. 【转】ubuntu下最好用的输入法fcitx-sunpinyin

      http://www.freetstar.com/index.php/ubuntu-most-use-friendly-fcitx-sunpinyin 今天难得折腾一会儿输入法,对于系统美化方面的 ...

  4. Backbone源码分析(二)

    在传统MVC框架模式中,Model承担业务逻辑的任务.Backbone作为一个mvc框架,主要的业务逻辑交由Model与Collection来实现.Model代表领域对象,今天主要学一下Model源码 ...

  5. 前端展望:取avalon,弃angular

    打给比方,如果说angularJS是剑,那么avalon就是匕首.匕首比剑更易学,更快,更适合快速作战... 我们还是直接来实际的吧:   目前项目开发中有以下几个通用需求: 有前端路由系统,用来划分 ...

  6. java中文乱码解决之道(七)-----JSP页面编码过程

    我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language=" ...

  7. ASP.NET MVC Module

    ASP.NET MVC Module 前言 在ASP.NET中管道模型是怎么来实现的?在请求处理流程一文中大概的讲述了Http Module和HttpApplication之间的关系,而并没有涉及到H ...

  8. JSP的基本语法

    JSP的基本语法 一.JSP页面中的JAVA代码 二.JSP页面中的指令 三.JSP页面中的隐含对象(九大内置对象) 目录 一.JSP页面中的JAVA代码 JSP表达式(方便输出) JSP小脚本(完成 ...

  9. CentOS7安装mysql提示“No package mysql-server available.”

    针对centos7安装mysql,提示"No package mysql-server available."错误,解决方法如下: Centos 7 comes with Mari ...

  10. Windows下搭建MySQL Master Slave

    一.背景 服务器上放了很多MySQL数据库,为了安全,现在需要做Master/Slave方案,因为操作系统是Window的,所以没有办法使用keepalived这个HA工具,但是我们可以接受人工进行切 ...