首页 > Web开发 > 详细

Web开发之MVC框架

时间:2015-01-17 02:14:12      阅读:533      评论:0      收藏:0      [点我收藏+]

?什么是MVC框架?

?

? ? 在这里我简要的说明一下,想要详细的了解MVC的小伙伴们可以上百度百科,或者找来相应的书籍,仔细研究和理解一下,但是要说明的的一点是,完全理解MVC并不是一件容易的事。

?

? ? ? ? ?MVC的全称为Model View Controller,是模型-视图-控制器的缩写,一种软件框架模式,通俗点讲,就是将应用程序的输入、处理和输出进行解耦,使MV的实现代码分离,从而使同一个程序可以使用不同的表现形式。

?

? ? 简单来说一下MVC框架的三个核心部件的内容,即ModelViewController。它们各自处理自己的任务,因此可以使不同的开发人员可以同时开发视图、控制器逻辑和业务逻辑。

?

? ? ? ? Model?是指要处理的业务代码和数据操作代码

? ? ? ? View?视图主要是指能够跟用户打交道并能够展示数据

? ? ? ? Controller看成是ModelView的桥梁,接受用户的输入并调用模型和视图去完成用户的需求。

?

? ?如何使用MVC编程?

?

? ? 既然MVC是一个通用的框架,那么我们就可以通过VS去创建一个使用MVC框架的解决方案,然后编写自己的代码,实现要求的功能。

?

? ? 首先,打开VS,新建项目如下图所示:

bubuko.com,布布扣

? ? 点击确定之后会看到右侧的解决方案资源管理器中已经为我们自动创建好了MVC框架,如下图所示:

bubuko.com,布布扣

? ? 然后我们就可以在相应的文件下创建模型、控制器和视图了。

? ? 来看一个小例子,我们在文件夹Controllers上右键添加一个控制器,如下图所示:

bubuko.com,布布扣

bubuko.com,布布扣

? ? 然后在Models文件中添加一个实体类,代码如下:

?

[csharp]?view plaincopybubuko.com,布布扣bubuko.com,布布扣
?
  1. <span?style="font-size:18px;">namespace?MVCBlog.Models??
  2. {??
  3. ????public?class?Dog??
  4. ????{??
  5. ????????public?int?ID?{?get;?set;?}??
  6. ????????public?string?Name?{?get;?set;?}??
  7. ????????public?override?string?ToString()??
  8. ????????{??
  9. ????????????return?"ID="?+?this.ID?+?",Name="?+?this.Name;??
  10. ????????}??
  11. ????}??
  12. }</span>??

?

? ? 这样我们就可以在控制器中写代码了,代码如下:

?

[csharp]?view plaincopybubuko.com,布布扣bubuko.com,布布扣
?
  1. <span?style="font-size:18px;">namespace?MVCBlog.Controllers??
  2. {??
  3. ????public?class?HomeController?:?Controller??
  4. ????{??
  5. ????????//??
  6. ????????//?GET:?/Home/??
  7. ????????public?List<Models.Dog>?InitData()??
  8. ????????{??
  9. ????????????List<Models.Dog>?list?=?null;??
  10. ????????????list?=?new?List<Models.Dog>()??
  11. ????????????{??
  12. ????????????????new?Dog(){?ID=1,Name="藏獒"},??
  13. ????????????????new?Dog(){?ID=2,Name="牧羊犬"},??
  14. ????????????????new?Dog(){?ID=3,Name="吉娃娃"},??
  15. ????????????????new?Dog(){?ID=4,Name="哈士奇"}??
  16. ????????????};??
  17. ????????????return?list;??
  18. ????????}??
  19. ????????public?ActionResult?Index2()??
  20. ????????{??
  21. ????????????System.Text.StringBuilder?sbHtml?=?new?System.Text.StringBuilder(4000);??
  22. ????????????List<Models.Dog>?list?=?InitData();??
  23. ????????????list.ForEach(d?=>??
  24. ????????????{??
  25. ????????????????sbHtml.AppendLine("<div>"?+?d.ToString()?+?"<div>");??
  26. ????????????});??
  27. ????????????ViewBag.HtmlStr?=?sbHtml.ToString();??
  28. ????????????return?View();??
  29. ????????}??
  30. ????}??
  31. }</span>??

?

? ? 最后我们来创建视图,方法是在控制器中的Index2方法上右击,选择添加视图即可,如下图所示:

bubuko.com,布布扣

? ? 我们会看到在Views文件夹下的Home文件夹中有了一个名为Index2.cshtml的文件,这个就是视图文件,我们在视图中写一行代码就可以调用控制器中的方法了,代码如下:

?

[html]?view plaincopybubuko.com,布布扣bubuko.com,布布扣
?
  1. <span?style="font-size:18px;">@{??
  2. ????Layout?=?null;??
  3. }??
  4. ??
  5. <!DOCTYPE?html>??
  6. ??
  7. <html>??
  8. ????<head>??
  9. ????????<title>Index</title>??
  10. ????</head>??
  11. ????<body>??
  12. ????????@Html.Raw(ViewBag.HtmlStr)??
  13. ????</body>??
  14. </html></span>??

?

? ? 下面看如何运行程序,运行传统的Web应用程序我们在浏览器的地址栏中输入的是http://localhost:60063/Views/Home/Index2.aspx,而我们使用MVC编写的应用程序不是这样,我们只需要调用相应的视图即可,在浏览器中输入的是http://localhost:60063/Home/Index2,回车之后的结果如下:

bubuko.com,布布扣

? ? 总结:对于MVC框架,很多人都会想到三层框架,它们的确有相似的地方,都是对应用程序进行分层解耦,但是相比较而言,MVC框架的三个部件解耦的比较彻底,它们是相互独立的,改变其中一个不会影响其他的两个,做到了耦合性低,这样带来的最大的好处是可维护性高。MVC还有其他的优势,当然也有很多缺点,有兴趣的可以自己查阅资料。

?

? ? 还要说明一点的是,很多人对于框架模式和设计模式的概念不是很清楚,特别容易混淆两者。因此很多对MVC认识不深刻的人认为MVC是一种设计模式,实际上它们是完全不同的两个东西。简单来说,框架通常是代码重用,而设计模式是设计重用,架构则是介于两者之间,部分代码重用,部分设计重用,有时也可以分析重用。

?

? ? 引用一句话,框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度

? ? ? ? ?MVC只是框架的一种,还有很多其他常用的框架,比如:StrutsSpringZend Framework以及.NET MVC等,期待去学习和使用它们。

其他精彩文章

jQuery教程(19)-jquery ajax操作之序列化表单

jQuery教程(18)-ajax操作之执行POST请求

jQuery教程(20)-jquery ajax + php 操作之为Ajax请求提供不同...

jQuery教程(21)-jquery ajax 回调函数

?

更多关于android开发文章

Web开发之MVC框架

原文:http://aijuans.iteye.com/blog/2176561

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!