mvc小结

来源:互联网 发布:松井珠理奈 知乎 编辑:程序博客网 时间:2024/06/06 00:56

一、什么是MVc ?

MVC的全名称是Model view Controler,是模型(model)视图(view)控制器(controler)的缩写。它是一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进界面和用户交互的同事,不需要重新编写业务逻辑。 Asp.NEt中支持三种不同的开发模式。Web Page页面、MVC、WebForm。MVC是一种使用MVC设计创建Web应用程序的模式。

Model(模型)表示应用程序的核心,是应用程序中用于处理应用程序数据逻辑的部分,负责在数据库中存取数据。
View(视图)显示数据,处理数据显示的部分,是依赖数据模型建立的。
Control(控制器)处理输入,是引用程序中处理用户交互的部分通常负责从视图中读取数据,控制用户输入,并且向模型发送数据。

执行的流程:通常控制器负责从视图读取数据,控制用户输入,并且向模型发送数据。
MVC分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注于一个方面。例如,您可以在不依赖于业务逻辑的情况下专注于视图设计。


二、MVC 与webForm的比较

     这是一个胖子和瘦子的故事,下面的这张图很好的阐释了两者之间的关系。Web Form中Web层将所有的代码都放在了一块,而MVC则是又将Web又分离出来了三层 ,进一步解耦。


Asp.net 是一个快速可视化的web程序开发技术,也就是说,开发者简单拖拽控件到窗体设计器上,VS就会在BehindCode(aspx.cs文件)生成代码。
也就是,当你从一个设计面板中拖拽一个按钮的时候,在后台代码中就会生成一个button点击对象,你只需在按钮的点击事件中相应代码就可以。

                 

     从webform切换到MVC框架:

将behind code中的代码转移到了controler类中,并将原来的方法转化为action方法。中间层用数据模型和逻辑接口代替。
试图


三、MVC文件夹

    看到客户端那么多的文件夹,刚开始都不知道是干什么的,慢慢的才逐渐的熟悉。下面查了一些资料,简单介绍一下常用的文件夹的作用。

    所有的MVC应用程序的文件夹名称都是相同的,MVC框架是基于默认的命名。控制器写在controllers文件夹中,视图写在Views文件夹中,模型写在Model问价夹中,您不必在应用程序中使用问价夹名称。标准化的命名减少了代码量 ,同时有利于对MVC项目的理解。

                  
1. View_Data问价夹是用于存储应用程序数据。
2.content文件夹用于存储静态文件,比如样式表(CSS文件).图像和图标。
3.visual Web Developer会自动添加一个 themes文件夹到Content文件夹中。themes问价夹存放jQuery样式和图片。在项目中,您可以删除这个themes文件夹。同时也会添加一个标准的样式表文件到项目中。即content文件夹中的Site.Css 文件。这个样式表是您想要改变应用程序样式时候需要编辑的文件。
4.controlers文件夹中包含负责处理用户输入和相应的控制器类。MVC要求所有的控制器文件都以“Controller”结尾。
5.Model问价夹用于包含表示应用程序模型的类,模型控制并且操作应用程序的数据。
6.View文件夹
    View文件夹用于存储与应用于程序的显示相关的html文件,即用户界面。View文件中包含每一个控制器对应的文件夹。根据语言的内容,这些文件可能扩展名可能是html、apsx、cshhtml等。view中有一个Home文件夹和shared文件夹。Home是VS2013新建立的时候自带的,是我们运行以后显示的页面。shared文件中存放着模板页还有一个Error页面。其他页面可以应用模板页。Error是定义了一种当程序崩溃的时候跳转的页面。一个ActionResult方法会对应返回一个视图页面。
7.Script文件夹中存储应用程序的javascript文件。默认情况下,这个文件夹中存放标准的MVC、Ajax 和JQuery文件。

二、样式和布局

文件_Layout.cshtml表示应用程序中的每个页面的布局。它位于View文件夹中的Share文件夹。
Razor语法,@ViewPage.Title表示页面标题将在这里插入。@RenderBody() 表示页面内容将在这里呈现。
@{Layout = "~/Views/Shared/_Layout.cshtml";}

执行的时候,首先,只有当返回类型是ActionResult并且最后又return view()这样的语句的时候,才必须确保在View文件夹中有相应的视图文件。此外,因为MVC都是通过Controller/Action来进行页面或者说数据或者说代码操作的,从这里我们可以知道Action应该指的是一个动作,它并不一定是一个试图页面,如这里的hello()方法,他并没有返回一个页面,只返回了一个字符串,所以Action是方法,Controller里面所有的方法都是一个Action。
此处对MVC的执行过程稍加说明,MVC会根据传入的URL调用不同的Controller和其中的action()方法。

总结:

 只是会用,但是真正让你说,有种说不出来的感觉,还是理解的不深刻。还是得多写代码,多总结。详细例子代码接下来将会贴出来。



0 0
原创粉丝点击