【MVC】-走进你的世界
来源:互联网 发布:花千骨衣服淘宝 编辑:程序博客网 时间:2024/05/16 13:55
【引言】
小编在最近的学习中知道了mvc(Model-View-Controller),它是一种软件设计模式,相对于传统的ASP.NET Web Forms开发来说,在某些方面有了改进,在国外网站的MVC社群很活跃,互联网的红利,现在国内有越来越多的人开始了解它并接受它。
【出现原因】
为什么会出现mvc这种框架呢? 大家应该很熟悉SP.NET Web Forms这种模式的开发,经历了十年的演进,其组件化技术已经非常成熟,但是利用Web Forms开发Web应用程序还是会遇到许多瓶颈与限制,ASP.NET开发人员遇到的问题有:
- 邪恶的ViewState(用了像GridView这种超大控件就非常容易失控);
- 控件组件对HTML的控制不够直观或太过复杂;
- 不容易采用TDD(Test-driven Development)测试导向开发模式开发,也不容易撰写单元测试。
这时候mvc的优点就显现出来了:
- 清楚的关注点分离 ,强迫你写出比Web Forns 更容易维护的程序;
- 开放特性(万全开放源代码);
- 社群支持(当前国外社群非常活跃);
- 可轻易地控制HTTP的输出属性(这点比Web Forms好太多太多了);
- 优秀的开发效率;
- 易于测试的架构;
- 易于分工的架构。
MVC采用封装的思想,各层负责的事情分离,相互独立,来降低耦合度,从而使我们的系统更加的灵活,扩展性更好。
【认识它】
MVC是Model-View-Controller的缩写,中文翻译为“模式-视图-控制器”架构最早是smalltalk语言中提出的,应用于用户交互应用程序中,将交互式应用程序分为3个组件:
模型:包含核心功能和数据(核心业务逻辑)(将人机交互从核心功能中分离出来)
视图:向用户显示信息(模型对于用户来说是透明的,用户只需要观察视图)
控制器:处理用户输入(用户与模型的交互通过控制器提供的安全方法来实现)
把一个应用的输入、处理、输出流程按照Model、View、Controller的方式分离。
我们所知道的mvc……
【了解它】
1. MVC体系结构
2. MVC请求流程
【实例演示】
1. Model层写一个实体类
public class Healthytips { public string healthyID { get; set; } public string healthyType { get; set; } public string healthyContent { get; set; } public string healthyStates { get; set; } }
2. Controller:从视图中读取数据,向model发送数据
public class HealthyTipsController : Controller { // // GET: /HealthyTips/ public ActionResult Index() { //返回对应视图,FrontPage为相应的cshtml的名称 return View("FrontPage"); } public string HealthyTips() { HealthyTipsBLL healthytips = new HealthyTipsBLL(); return healthytips.QueryTips(); } }}3. View接收和显示数据:
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content ="width=device-width" /> <title>Index</title> @*引入js文件*@ <script type="text/javascript" src="../../Content/JS/FrontPage/Index.js"></script></head> <body> ……</body> </html>
Index.js文件$(document).ready(function () { $.ajax({ url: '/HealthyTips/HealthyTips', type: 'get', datatype: Text, success:function(data){ var unique_id = $.gritter.add({ // (string | mandatory) the heading of the notification title: data, // (string | mandatory) the text inside the notification text: 'Welcome to Dynamic Excellent System!', // (string | optional) the image to display on the left image: '../../Content/IMG/FrontPage/ui-sam.jpg', // (bool | optional) if you want it to fade out on its own or just sit there sticky: true, // (int | optional) the time you want it to be alive for before fading out time: '', // (string | optional) the class name you want to apply to that specific message class_name: 'my-sticky-class' }); return false; } });
【总结】
mvc中实现了View和数据(Model)的分离、View和表现逻辑(Controller)的分离,可以有多个视图对应一个模型的能力,在需求多变的情况下,数据模型可以有多个视图的对应,增加了灵活性,减少了代码的复制,一旦数据模型发生改变,也易于维护。感谢您的阅读,期待您的宝贵意见~~
- 【MVC】-走进你的世界
- 带你走进QQ的数字世界
- 【C#——走进你的世界】
- 带你走进分辨率/像素的世界
- 带你走进Git的世界
- 【WebService】带你走进webservice的世界
- 【WebService】带你走进webservice的世界
- 带你走进rsync的世界
- 带你走进rsync的世界
- 带你走进逐浪新宋体的世界
- 思维导图带你走进春的世界
- 传智播客带你走进java世界
- 带你走进Oracle数据安全的世界一观
- 传智播客成都Java培训,带你走进Java的世界...
- 带你走进Android Afinal框架的世界
- 轻松带你走进Oracle数据库的世界
- 带你走进多线程的世界(多线程实现方式)
- 创建一个Android_project,带你走进android的世界
- 转:kafka数据可靠性深度解读
- InitInstance中创建CWnd派生的窗口对象,内存泄漏
- 第十周:( Sicily1091) Maximum Sum(c++)
- 开启子线程的方法
- java语言基础(42)——package关键字概述和使用
- 【MVC】-走进你的世界
- JAVA反射机制(一)
- php中序列化与反序列化
- 流-输入输出流
- xhEditor用法
- 总结
- swustoj dearway's problem(0240)
- Linux ext2, ext3, ext4 文件系统解读[3]
- JDBC的使用(mysql)