MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controler)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法。

1.最上面直接面向用户的"视图层"(View)。它是提供给用户的操作界面。

2.最底层核心的"数据层"(Model),也就是程序需要操作的数据或信息。

3.中间层是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。

MVC就像有点类似于食堂,可以分成三部分。一部分是仓库,负责提供蔬菜等原材料,这是"数据层"(Model);另一部分是卖饭窗口,这是它的"视图层"(View),负责销售饭菜;两者之间是通过厨师这个"控制层"(Controller)将原材料从“仓库”中取出,处理加工后放到“窗口”上卖。

下面就通过一个小例子进一步说明MVC的中三层的各自的作用以及交互。

1.新建mvc项目。

2.在Models文件夹下新建一个user类,用于模拟数据。

  1. public class user
  2. {
  3. public string userName {get;set; }
  4. public string passWord{get;set;}
  5.  
  6. public override string ToString ()
  7. {
  8. return "userName="+this.userName+",passWord="+this.passWord;
  9. }
  10. }

3.在Controllers文件夹下新建一个控制器,用于从获取user.cs中数据,并将处理后数据传给Index.cshtml视图。

  1. namespace MyMvcTest.Controllers
  2. {
  3. public class MyUserController : Controller
  4. {
  5. //
  6. // GET: /MyUser/
  7.  
  8. public List<Models.user> InitData()
  9. {
  10. List<Models.user> list = new List<Models.user>()
  11. {
  12. new Models.user(){userName="1",passWord="1"},
  13. new Models.user(){userName="2",passWord="2"},
  14. new Models.user(){userName="3",passWord="3"}
  15. };
  16.  
  17. return list;
  18. }
  19.  
  20. public ActionResult Index()
  21. {
  22. //创建一个StringBuilder
  23. System.Text.StringBuilder sbHtml = new System.Text.StringBuilder(4000);
  24.  
  25. //初始化数据
  26. List<Models.user> list = InitData();
  27.  
  28. //从list中获取数据并存入到sbHtml中
  29. list.ForEach(d =>
  30. {
  31. sbHtml.AppendLine("<div>"+d.ToString()+"</div>");
  32. });
  33.  
  34. //利用ViewBag传输数据给同名的index.cshtml视图
  35. ViewBag.HtmlStr = sbHtml.ToString(); //ViewBag是一个dynamic类型集合,可以动态添加任意类型的任意名称的属性和值
  36. return View();
  37. }
  38.  
  39. }
  40. }

4.添加视图,用于将数据显示到Index.cshtml视图中。

@{  Layout = null;}

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta name="viewport" content="width=device-width" />
  5. <title>Index</title>
  6. </head>
  7. <body>
  8. <div>
  9. <!--绑定html代码,过滤html 标记-->
  10. @Html.Raw(ViewBag.HtmlStr)
  11. </div>
  12. </body>
  13. </html>

5.配置路由,设置新添加的视图为默认启动视图,在App_Start文件下找到RouteConfig.cs文件进行修改。

总结: View提供给操作界面, Model提供程序需要操作的数据或信息, Controller负责对数据加工并传入到到view中。

MVC——入门+简单的小实例的更多相关文章

  1. 从一个简单的小实例分析JSP+Servelt与JSP+Struts2框架的区别

    最近在学struts2,struts2相比以前的JSP+Servlet,在处理流程上的更简单,我们就一个小实例来具体分析一下. 实例内容如下: 实现一个简单的注册页面包括:用户名.密码.重复密码.年龄 ...

  2. Android recording 录音功能 简单使用小实例

    package com.app.recordingtest; import java.io.File; import java.io.IOException; import android.app.A ...

  3. VueX(vue状态管理)简单小实例

    VueX:状态管理 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 核心模块:State. ...

  4. 一个简单的Android小实例

    原文:一个简单的Android小实例 一.配置环境 1.下载intellij idea15 2.安装Android SDK,通过Android SDK管理器安装或卸载Android平台   3.安装J ...

  5. Spring MVC入门的实例

      作为Spring MVC入门,以XML配置的方式为例.首先需要配置Web工程的web.xml文件. 代码清单14-1:web.xml配置Spring MVC <?xml version=&q ...

  6. Spring MVC之简单入门

    一.Spring MVC简介: 1.什么是MVC 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型(Model).视图(View)及控制器(Contr ...

  7. Jmeter Web 性能测试入门 (四):一个小实例带你学会 Jmeter 脚本编写

    测试场景: 模拟并发100个user,在TesterHome 站内搜索VV00CC 添加线程组 添加HTTP信息头管理器 添加HTTP Sampler 填写HTTP Sampler中的信息 添加监听器 ...

  8. spring mvc入门教程 转载自【http://elf8848.iteye.com/blog/875830】

    目录  一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 ...

  9. spring+mybatis之声明式事务管理初识(小实例)

    前几篇的文章都只是初步学习spring和mybatis框架,所写的实例也都非常简单,所进行的数据访问控制也都很简单,没有加入事务管理.这篇文章将初步接触事务管理. 1.事务管理 理解事务管理之前,先通 ...

随机推荐

  1. dubbo源码分析5-dubbo的扩展点机制

    dubbo源码分析1-reference bean创建 dubbo源码分析2-reference bean发起服务方法调用 dubbo源码分析3-service bean的创建与发布 dubbo源码分 ...

  2. Java:并行编程及同步使用方法

    知道java可以使用java.util.concurrent包下的 CountDownLatch ExecutorService Future Callable 实现并行编程,并在并行线程同步时,用起 ...

  3. Ubuntu 12.04安装vim和配置

    问题: ubuntu默认没有安装vim,出现: jyg@ubuntu:~$ vim test.cThe program 'vim' can be found in the following pack ...

  4. poi jar包的作用

    目前POI的最新发布版本是3.10_FINAL.该版本保护的jar包有: Maven artifactId Prerequisites JAR poi commons-logging, commons ...

  5. 将Cocos2dX渲染到MFC窗口上

    引用:http://www.cnblogs.com/windeer/archive/2012/11/18/2767750.html 引言 现在智能手机已经慢慢进入大众化,移动类应用开始火爆起来,游戏类 ...

  6. 关于webservice大数据量传输时的压缩和解压缩

    当访问WebSerivice时,如果数据量很大,传输数据时就会很慢.为了提高速度,我们就会想到对数据进行压缩.首先我们来分析一下. 当在webserice中传输数据时,一般都采用Dataset进行数据 ...

  7. [Android Studio] 按钮学习

    Android Studio 按钮 1. 添加一个按钮 新建一个 Blank Project 之后, 在 activity_main.xml: 中添加一个按钮, 可以使用design 模式来添加,: ...

  8. 理解GRUB2工作原理及配置选项与方法

    GRUB2是借鉴GRUB改写到更加安全强大到多系统引导程序,现在大部分较新的Linux发行版都是使用GRUB2作为引导程序的.GRUB2采用了模块化设计,使得GRUB2核心更加精炼,使用更加灵活,同时 ...

  9. 富文本常用封装(NSAttributedString浅析)

    最近经常遇到关于富文本的一些需求,特此封装了几个最常用的API分享给大家,但授之以鱼不如授之以渔,接下来会顺便谈谈NSAttributedString,确保你读了本篇文章能够自己封装关于富文本的API ...

  10. How can I view currently running MySQL queries?( 查看正在运行的MySQL语句/脚本命令)

    show processlist;show processlist\G;SHOW FULL PROCESSLIST;SHOW FULL PROCESSLIST\G; REF:http://dev.my ...