ASP.Net MVC概念及基本
1.1概念
MVC是一种软件设计模式,即:Model(模型)、View(视图)、Controller(控制器) 。其主要设计目标是将用户接口和逻辑层相分离,以便开发人员更好的关注逻辑层的设计和测试,并是整个程序具备清晰的的结构。ASP.Net MVC 框架是MVC设计模式的实现方式之一。ASP.Net MVC 框架有三大组成部分:Model:模型是实现应用程序的数据逻辑的应用程序组件,通常被称为“数据模型”。模型对象会检索模型状态。并将其存储在数据库中。View:视图是显示应用程序用户界面(UI)的组件。ASP.Net MVC 支持Razor视图引擎,所以视图推荐使用CSHTML页面,而不是ASPX。Controller:控制器是处理用户交互,使用模型并选择视图来显示界面的组件。在MVC应用程序中,视图仅显示界面,控制器则用于处理和响应用户输入和交流。例如,控制器处理查询字符串值,并将这些值传递给模型,而模型使用这些值来查询数据库,并用View显示结果。
ASP.Net MVC应用程序包括默认文件和目录如下:
/App_Data:数据的物理存储区,即本地化的数据库文件或数据文件。
/App_Start:包含多个静态配置类,执行应用程序的初始化任务。
/Content:放置应用程序的静态内容,如CSS、可下载文件、音乐文件等。
/Images:存放图片目录。
/Controller:放置控制器文件。控制器文件是后缀为.cs或.vb的类文件。
/Model:放置数据模型对象的文件,如.cs、.vb、.edmx、.dbml等。
/Scripts:放置JavaScript、Jquery文件,文件后缀名通常为.js。
/View:放置视图文件,文件后缀名.schtml或.aspx。
/Global.asax:全局应用程序类文件。
/Web.config:应用程序配置文件。
1.2控制器向视图传递数据
控制器向视图传递数据可以使用三种对象:
ViewData:是字典类型,存放键/值对数据。ViewData只在一次HTTP请求中有效,当这次请求结束后,会自动清空其值。
ViewBag:存放dynamic动态类型数据。
TempData:默认保存在Session中,控制器每次从Session中获取TempData,然后清除Session。在每次请求结束后,TempData结束什么周期。
针对这一些知识在面试的时候别人可能会问以下问题:
1、MVC和三层架构的区别?
“三层架构”是一种软件抽象的层次结构,是对复杂软件的一种纵向切分。每一层完成同一类型的操作,以便将各种代码以它完成的“使命”作为依据来分割,降低软件的复杂度,提高可为维护性。同时各层有向下的依赖关系,表现层依赖业务逻辑层,业务逻辑层依赖数据访问层。
MVC模式是一种复合设计模式,其组成部分之间不存在明显的层次结构,没有明显的向下的依赖关系。相反,View和Model相对比较独立,而Controller是链接两者的桥梁。相对而言,MVC是横向切分。内容上更复杂,结构更清晰、耦合性更低,每个部分可以独立测试。需要注意的是,“三层架构”中的Model层由实体类构成,与MVC的MOdel由业务逻辑和数据访问组成。
2、简述ViewData、ViewBag和TempData的区别。
ViewData仅在当前控制器的操作方法中有效,其生命周期和视图相同。ViewBag是dynamic动态类型,它在程序运行时动态解析,读取数据无需转换类型。TempData数据默认保存在Session中,最多只能经过一次Controller传递,且每个元素最多只能被访问一次,访问后自动删除。
ASP.Net MVC概念及基本的更多相关文章
- ASP.NET MVC 5 02 - ASP.NET MVC 1-5 各版本特点
参考书籍:<ASP.NET MVC 4 高级编程>.<ASP.NET MVC 5 高级编程>.<C#高级编程(第8版)>.<使用ASP.NET MVC开发企业 ...
- 【AaronYang第一讲】ASP.NET MVC企业开发的基本环境[资源服务器概念]
学完了ASP.NET MVC4 IN ACTION 六波以后 企业开发演习 标签:AaronYang 茗洋 EasyUI1.3.4 ASP.NET MVC 3 本篇博客地址:http://ww ...
- 一百元的智能家居——Asp.Net Mvc Api+讯飞语音+Android+Arduino
大半夜的,先说些废话提提神 如今智能家居已经不再停留在概念阶段,高大上的科技公司都已经推出了自己的部分或全套的智能家居解决方案,不过就目前的现状而言,大多还停留在展厅阶段,还没有广泛的推广起来,有人说 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点
在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...
- ASP.NET MVC 视图(五)
ASP.NET MVC 视图(五) 前言 上篇讲解了视图中的分段概念.和分部视图的使用,本篇将会对Razor的基础语法简洁的说明一下,前面的很多篇幅中都有涉及到视图的调用,其中用了很多视图辅助器,也就 ...
- ASP.NET MVC 视图(四)
ASP.NET MVC 视图(四) 前言 上篇对于利用IoC框架对视图的实现进行依赖注入,最后还简单的介绍一下自定义的视图辅助器是怎么定义和使用的,对于Razor语法的细节和辅助器的使用下篇会说讲到, ...
- ASP.NET MVC Model元数据(一)
ASP.NET MVC Model元数据(一) 前言 在我初学的时候对Model元数据的概念很模糊,或者说是在大脑中没有它的一个模型,作为小白的我去看网上的一些文章还是两眼一黑啥都看不明白,然后我想退 ...
- 自学MVC看这里——全网最全ASP.NET MVC 教程汇总
MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC.小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口.本文从 ...
- ASP.NET MVC企业级实战目录
电子书样稿 (关注最新进度,请加QQ群:161436236) ASP.NET MVC企业实战第1章 MVC开发前奏.pdf ASP.NET MVC企业实战第10章 站内搜索.pdf 已经好长一段时间没 ...
随机推荐
- 2:numpy---ndarray
ndarray即是多维数组[n dimension array] 一:创建ndarray 有好几种创建数组的方法. 例如,你可以使用 array 函数从常规的Python列表和元组创造数组.所创建的数 ...
- 邮件发送 EMailHelper
引用: using System; using System.Collections.Generic; using System.Linq; using System.Net; using Syste ...
- (转)SQL Server 2008将数据导出为脚本 [SQL Server]
之前我们要将一个表中的数据导出为脚本,那么只有在网上找一个导出数据的Script,然后运行就可以导出数据脚本了.现在在SQL Server 2008的Management Studio中增加了一个新特 ...
- C#高级知识点概要(2) - 线程并发锁
本文目录: 线程的简单使用 并发和异步的区别 并发控制 - 锁 线程的信号机制 线程池中的线程 案例:支持并发的异步日志组件 线程的简单使用 常见的并发和异步大多是基于线程来实现的,所以本文先讲线程的 ...
- uva 10222 - Decode the Mad man
#include <iostream> #include <string> #include <cctype> using namespace std; int m ...
- Python同时向控制台和文件输出日志logging的方法 Python logging模块详解
Python同时向控制台和文件输出日志logging的方法http://www.jb51.net/article/66756.htm 1 #-*- coding:utf-8 -*- 2 import ...
- 如何使用JSONP
1.使用$.getJSON() $.getJSON(" http://跨域的dns/document!searchJSONResult.action?name1="+value1+ ...
- asp.net 的那点事(2、浏览器和一般处理程序)
从今天开始我们接着来学习:asp.net中一般处理程序和浏览器的通信. 一.第一个图解: 从图解中我们看出,整个过程是:"请求---处理---响应".这个也就是经常面试的时候,面试 ...
- phpword的几个坑
下载地址http://phpword.codeplex.com/ 开发目的:有现成的word模板 替换模板中的字段 1.中文乱码问题,如果你文件本身就是utf8...把Phpword里的模板类的一行转 ...
- PHP 中const 与define 区别
1.const用于类成员变量定义,一旦定义且不能改变其值.define定义全局常量,在任何地方都可以访问. 2.define不能在类中定义而const可以. 3.const不能在条件语句中定义常量 i ...