MVC——入门+最简单的小实例

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

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

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

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

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

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

1.新建mvc项目。

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

    public class user
    {
        public string userName {get;set; }
        public string passWord{get;set;}

        public  override string ToString ()
        {
            return "userName="+this.userName+",passWord="+this.passWord;
        }
    }

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

namespace MyMvcTest.Controllers
{
    public class MyUserController : Controller
    {
        //
        // GET: /MyUser/

        public List<Models.user> InitData()
        {
            List<Models.user> list = new List<Models.user>()
            {
                new Models.user(){userName="1",passWord="1"},
                new Models.user(){userName="2",passWord="2"},
                new Models.user(){userName="3",passWord="3"}
            };

            return list;
        }

        public ActionResult Index()
        {
            //创建一个StringBuilder
            System.Text.StringBuilder sbHtml = new System.Text.StringBuilder(4000);

            //初始化数据
            List<Models.user> list = InitData();

            //从list中获取数据并存入到sbHtml中
            list.ForEach(d =>
            {
                sbHtml.AppendLine("<div>"+d.ToString()+"</div>");
            });

            //利用ViewBag传输数据给同名的index.cshtml视图
            ViewBag.HtmlStr = sbHtml.ToString();  //ViewBag是一个dynamic类型集合,可以动态添加任意类型的任意名称的属性和值
            return View();
        }

    }
}

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

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        @Html.Raw(ViewBag.HtmlStr)
    </div>
</body>
</html>

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

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

源码下载

时间: 2024-08-25 22:06:49

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

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

最近在学struts2,struts2相比以前的JSP+Servlet,在处理流程上的更简单,我们就一个小实例来具体分析一下. 实例内容如下: 实现一个简单的注册页面包括:用户名.密码.重复密码.年龄.出生日期.毕业日期 要求如下:用户名的长度在4-6之间密码的长度在4-6之间重复密码与密码相等年龄在10-50之间出生日期在毕业日期之前 输入错误返回原页面,并在原页面的文本框后面显示具体的错误信息.正确输入则跳入下个页面将信息显示出来. 1.JSP+Servlet 1)我们编写注册页面regis

java入门---简介&amp;简单输出小例子&amp;开发前准备

    Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出.Java分为三个体系: JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版) JavaME(J2ME)(Java 2 Plat

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

测试场景:模拟并发100个user,在TesterHome 站内搜索VV00CC 添加线程组 添加HTTP信息头管理器 添加HTTP Sampler 填写HTTP Sampler中的信息 添加监听器 线程组参数中填写模拟并发的数量 运行脚本 查看运行结果

Flex入门(二)——Flex+BlazeDs+J2ee小实例

首先来简单介绍一下BlazeDS. BlaseDS的核心功能包括RPC Services(远程过程调用服务) 和Messaging Service(消息服务).BlazeDS是一个基于服务器的Java远程调用(remoting)和web消息传递(messaging)技术,使得后台的Java应用程序可以和运行在浏览器上的Flex应用程序能够互相通信.简单来说一个BlazeDS应用包括客户端(Flex或AIR应用程序)和一个服务端(J2EE程序).BlazeDS在期间起着承上启下的作用,Flex和B

Socket通信入门小实例

客户端: public class Client { private int port = 8000; private String host = "localhost"; private Socket socket; public Client() throws UnknownHostException, IOException { socket = new Socket(host, port); } public void readFromUser() throws IOExcep

Spring MVC 入门实例

概述: springmvc 框架围绕DispatcherServlet这个核心展开,DispatcherServlet是Spring MVC的总控制,它负责截获请求并将其分派给相应的处理器处理.SpringMVC框架包括注解驱动控制器.请求及响应的信息处理.视图解析.本地化解析.上传文件解析.异常处理以及表单标签绑定等内容. SpringMVC是主要基于MODEL2实现的技术框架,Model2是经典的MVC(model.view.control)模型在web应用中的变体,这个改变主要源于HTTP

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

前几篇的文章都只是初步学习spring和mybatis框架,所写的实例也都非常简单,所进行的数据访问控制也都很简单,没有加入事务管理.这篇文章将初步接触事务管理. 1.事务管理 理解事务管理之前,先通过一个例子讲一下什么是事务管理:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必须是要么都执行要么都不执行.如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1000元:如果银行卡扣钱失败但是ATM却出

Spring.Net在ASP.NET Mvc里使用的一个小例子

就贴个小例子,就不注意格式了. 1.下载dll NuGet的下载地址:http://docs.nuget.org/docs/start-here/installing-nuget 在vs的NuGet里搜索spring.web.mvc,它会自动下载SpringNet的引用包. 安装完成之后你的项目会多三个引用,项目目录../packages文件夹下面也会多出这三个文件夹里面是SpringNet的文件. 2.写代码例子 很简单的例子.定义一个接口,一个对于接口的实现类. namespace MvcA

MVC入门教程

MVC入门系列教程-视频版本,已入驻51CTO学院,文本+视频学效果更好哦.视频链接地址如下: 点我查看视频.另外,针对该系列教程博主提供有偿技术支持,群号:226090960,群内会针对该教程的问题进行及时解答,公用性问题统一讲解.学习.NET MVC 只看在<无废话系列>足够了,<无废话系列>简单.快速.直接. 一.前言 以下是我自己写的MVC入门教程和一个外国人写的.觉得都很基础,够入门了.现整理成目录,先后顺序不代表排名. 二.我自己写的MVC入门教程 1.无废话MVC入门