MVC框架概述

2014.11.8我们完成为时两月的中级软考准备,没有多余的时间去放松、娱乐,紧接着迎来了我进入提高班以来真正的一次项目实践--高效平台。

我做的是基础系统,就是一个算是幕后英雄的角色吧!考试系统、评教系统需要我们的数据、同时新生入学系统由我们来维护,所以说任务艰巨而重要,这一节最重要的就是说软件开发中的第一项内容:知识补充---MVC

何谓MVC(Model View Controller):M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如统计学生数据可以分别用柱状图、饼形图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

它的具体操作过程如下所示:

模型(Model) “数据模型”(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权力,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变.

     视图(View) 视图层能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。

     控制器(Controller) 控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。  

    下面用一个例子来对MVC进行解释:

创建一个项目如下图所示:

    右击Controller文件夹,新建一空Controller,命名为HelloWorld,将代码改为如下:

public class HelloWorldController : Controller
{
    public string Index()
    {
        return "Hello world";
    }

    public string Hello()
    {
        return "Hello everyone";
    }

    public string Hello2(string name)
    {
        return "Hello to you " + name;
    }
}

右击添加视图: 

在新建的视图中添加代码:(结合了css+div)

@using 自动导入程序集.Models
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <style type="text/css">
        #tblist {
            border: 1px solid #0094ff;
            width: 600px;
            margin: 10px auto;
            border-collapse: collapse;
        }

            #tbList th, td {
                border: 1px solid #0094ff;
                padding: 10px;
            }
    </style>
    <script type="text/javascript">
        function del(id) {
            if (confirm("您确定要删除吗?亲~~")) {
                window.location = "/home/del" + id;
            }
        }
    </script>
</head>
<body>
    <table>
        <tr>
            <th>id</th>
            <th>标题</th>
            <th>分类</th>
            <th>状态</th>
            <th>时间</th>
            <th>操作</th>
        </tr>
        <!--遍历Action方法,设置给ViewData集合数据,生成HTML代码-->
        @foreach (BlogArticle a in ViewData["DataList"] as List<BlogArticle>)
        {
            <tr>
                <td>@a.AId </td>
                <td>@a.ATitle </td>
                <td>@a.ACate </td>
                <td>@a.AStatu </td>
                <td>@a.AAddtime </td>
                <td>
                    <a href="javascript:del(@a.AId)">删除</a>
                    <a href="/home/modify/@a.AId">改</a>
                </td>
            </tr>
        }
    </table>
    @foreach (BlogArticle a in ViewData["DataList"] as List<BlogArticle>)
    {

    }
</body>
</html>

接下来来实现一个基本的增删改的功能。假设我们要对博客的基本信息进行管理,首先需要定义一个Model类型,新建一个Model,代码如下:

namespace HelloWorld.Models
{
    public class BlogArticle
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
    }

    public class MovieDBContext : DbContext
    {
        public DbSet<movie> Movies { get; set; }
    }
}

接下来,我们新建一个Movie的Controller,使用ef(EntityFramework)来存取数据,如下配置:

通过EF可以动态的为你创建数据库,果Model文件发生了变化,例如添加了一个字段,网页就会报错,要解决有两种方案,一是调用Database.SetInitializer方法来自动重建数据库,二是手动修改数据库表。第一种方法虽然简单但是会导致已有的数据丢失,他会重建整个数据库。但是在开发初期非常适合使用。在这里先采用第一种方案。具体方法是,在model中新建一个类继承自DropCreateDatabaseIfModelChanges类。在其中可以加上可选的初始化数据的代码,然后在Global.asax中将这个对象注册下。

对于mvc的理解仅仅局限在实现上,认识还很肤浅,希望和大家交流!

时间: 2024-10-14 13:54:25

MVC框架概述的相关文章

Spring MVC 简述:从MVC框架普遍关注的问题说起

任何一个完备的MVC框架都需要解决Web开发过程中的一些共性的问题,比如请求的收集与分发.数据前后台流转与转换,当前最流行的SpringMVC和Struts2也不例外.本文首先概述MVC模式的分层思想与MVC框架普遍关注的问题,并以此为契机结合SpringMVC的入门级案例简要地从原理.架构角度介绍了它对这些问题的处理,包括请求处理流程.消息转换机制和数据绑定机制等核心问题.最后,本文对目前最为流行的两个MVC框架SpringMVC 和 一. MVC 模式与框架 1.MVC 模式 Java We

Java三大主流框架概述

Java三大主流框架概述 邮箱:[email protected] Struts.Hibernate和Spring是我们Java开发中的常用关键,他们分别针对不同的应用场景给出最合适的解决方案.但你是否知道,这些知名框架最初是怎样产生的?我们知道,传统的Java Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使的程序结构分为几层,有负责前台展示的JSP.负责流程逻辑控制的Servlet以及负责数据封装的Javabean.但是这种结构仍然存

.net的MVC框架

概述 MVC是一种思想,基于这个思想有了很多的框架,像java中的Struts,那么这个思想到底是什么呢? MVC思想 思想,也就是想法,要想知道这个想法是什么,就需要先知道这个想法因为什么产生了,要知道,没有无缘无故的恨,所以,想法也是不可能在没有任何因的情况下产生的,那么到底是什么触发了这个想法的产生,并且把它推到了高潮呢? 要想知道这个,首先,我们要分析一下在MVC真正到来之前,我们的Web编程世界的状况.当时的Web开发,主要以WebForm的开发模式,即以asp.net的事件驱动页面的

与MVC框架解耦的OGNL:前世今生及其基本用法

摘要: 虽然我们一般都是通过学习MVC框架而结缘OGNL,但它并没有与MVC框架紧紧耦合在一起,而是一个以独立的库文件出现的一种功能强大的表达式语言,也是字符串与Java对象之间沟通的桥梁.特别地,正因为它的独立性,使得我们可以十分方便地利用它构建我们自己的框架.在充分理解和掌握 OGNL 三要素 后,我们就可以通过简单一致的语法去存取Java对象树中的任意属性.调用Java对象树的方法并自动实现必要的类型转化.本文首先概述了Ognl的前世今生,并结合具体实例和源码阐述了OGNL的实质和OGNL

MVC模型概述(1)

摘自( 私塾在线,跟开涛学SpringMVC) 1.标准MVC模型概述       MVC模型(Model-View-Controller)是一种架构型的模式,本身不引入新功能,只是帮助我们将开发的结构组织的更加合理,使展示与模型分离.流程控制逻辑.业务逻辑调用与展示逻辑分离. Model提供要展示的数据.View负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西.Controller接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示

PHP之简单实现MVC框架

PHP之简单实现MVC框架 1.概述 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 2.代码结构 3.代码实现 1 2 3 4 5 6 7 8 9 10 1

MVC框架介绍

MVC框架 编辑 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 中文名 MVC 外文名 MVC框架 全    名 Model View Controller

[Java] 使用 Spring 2 Portlet MVC 框架构建 Portlet 应用

转自:http://www.ibm.com/developerworks/cn/java/j-lo-spring2-portal/ Spring 除了支持传统的基于 Servlet 的 Web 开发之外,也支持 JSR 168 Portlet 的开发.Spring Portlet MVC 框架尽可能多地继承了 Spring Servlet MVC 框架技术,使用了相同的底层表现层抽象和整合技术.同时,由于 JSR 168 Portlet 独特的工作流程,Spring Portlet MVC 框架

play框架概述

今天是来百度实习的第四天,在项目过程中mentor说会用到play框架,当时就一个晕啊.Java还有一个叫play框架,作为一个从大三开始用java的重度javaer,居然不知道这个框架的存在,内心一阵草泥马飞过,于是乎就花了一下午研究一下. What's play framework? 先来个开胃菜吧,什么是play框架呢? 先来点官方的解释:Play是一款开源.轻量.无状态.Web友好的架构,使用Java语言编写并遵循MVC模式,集成了当今Web开发所需的组件和API.此外Play可以给应用