MVC框架概述

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

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

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

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

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

MVC框架概述      

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

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

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

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

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

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; } }

           
右击添加视图: 
MVC框架概述

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

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




    
     
     
  
   
   
   
   
    
    Index 
     
     
    
      ) { 
     
     @foreach (BlogArticle a in ViewData["DataList"] as List 
       } 
     
id 标题 分类 状态 时间 操作
@a.AId @a.ATitle @a.ACate @a.AStatu @a.AAddtime 删除
@foreach (BlogArticle a in ViewData["DataList"] as List ) { }

          接下来来实现一个基本的增删改的功能。假设我们要对博客的基本信息进行管理,首先需要定义一个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
   
  
   
   
   
   
   
     Movies { get; set; } } } 
   

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

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

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


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214561.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午3:58
下一篇 2026年3月18日 下午3:58


相关推荐

  • 「详细图解」Pycharm添加解释器的方法步骤

    「详细图解」Pycharm添加解释器的方法步骤前言本篇文章主要给大家介绍 pycharm 添加解释器的方法步骤 文中通过示例代码介绍的非常详细 对大家的学习或者工作具有一定的参考学习价值 需要的朋友们下面随着小编来一起学习学习吧 选择解释器打开设置 图片上传中 图片 png ce40ee 21 0 选择解释器 图片上传中 图片 png b23535 60 0 加载完成点击 ok 图片上传中 图片 png 70 0 添加解释器 anconda 版本

    2026年3月27日
    2
  • 空间平面方程 java,空间平面方程

    空间平面方程 java,空间平面方程空间平面方程 由会员分享 可在线阅读 更多相关 空间平面方程 13 页珍藏版 请在人人文库网上搜索 1 一 平面的确定条件 返回 下一页 上一页 空间平面方程 三 平面的一般方程 二 点法式方程 四 两平面夹角 一 平面的确定条件 由立体几何知道 过空间一点可以而且只可以作一个垂直于一条已知直线的平面利用这个结论 若平面经过一定点 M0 x0 y0 z0 且与向量 n A B C 垂直 则这个平面

    2026年3月16日
    3
  • 个性化推荐算法总结[通俗易懂]

    个性化推荐算法总结[通俗易懂]读书笔记|《推荐系统实践》-个性化推荐系统总结对于推荐系统,本文总结内容,如下图所示:一、什么是推荐系统1.为什么需要推荐系统为了解决互联网时代下的信息超载问题。2.搜索引擎与推荐系统分类目录,是将著名网站分门别类,从而方便用户根据类别查找公司。 搜索引擎,用户通过输入关键字,查找自己需要的信息。 推荐系统,和搜索引擎一样,是一种帮助用户快速发展有用信…

    2022年5月2日
    39
  • 在线JSON格式校验网址

    在线JSON格式校验网址推荐个一直在用的 json 格式化的网址 BeJson http www bejson com 新版本 点击如下按钮进入新版 nbsp nbsp

    2026年3月18日
    1
  • socket bind 失败_socketerror11004

    socket bind 失败_socketerror11004 wisock中bind的10049错误代码如下:scokaddr_inaddr={0};intnRet=0;…memset(&addr,0,sizeof(scokaddr_in));addr.sin_family=AF_INET;addr.sin_addr.s_addr=INADDR_ANY;//(*)addr.sin_port=htons(

    2026年4月14日
    6
  • pychram激活码(破解版激活)

    pychram激活码(破解版激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    79

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号