MVC基础入门——最基础小例子

原创 2014年11月23日 23:24:53
    Mvc在学习《Headfirst》的时候,就接触过了。对于这个庞大的模式。非常的感兴趣。Mvc就是设计模式的升华。
   在没有接触过Mvc的时候,一直都是在使用的三层架构,使用的UBD三层来做项目。对于这个新接触的名词,还是很陌生的。所以需要来逐渐的来学习,如何使用Mvc。
   首先,MVC是在web开发上面提出的。所以要对比一下,web方式与mvc方式的区别。

   MVC(模型Model-视图View-控制器Controller)是一种软件架构模式。 当我们看到Model的时候,很容易就想到 在三层里面的实体层。首先需要知道的是,同样是Model,代表的是不同的意思。
   在MVC中,Model存放的是业务逻辑和数据访问,所做的工作相当于之前使用的B层和D层。
 
View代替了三层中的U层。也就是负责展示。
   三层中:U->B->D   是这么个顺序。
   MVC中:V    M 单独存在,使用C来对  V和M进行整合。
 
这个控制器Controller,负责把用户的请求转发给M,经过M处理之后,找到对应的V,然后把界面显示出来。

Webfrom页面的访问模式:
MVC的访问方式:
   所以MVC中,Controller中一定有相应的View对应。

而一个控制器中可以有多个方法,但每个方法都对应一个视图。
保证控制器下的方法,与View下面的视图相对应。
下面用一个例子,用mvc实现一下。
首先,是mvc例子的资源列表。
1、创建Controller:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using csdnblog.Models;
namespace csdnblog.Controllers
{
    public class HomeController : Controller
    {
        //创建一个数据集合(伪数据)
        List<Models.Dog> list = null;
        #region 0.1 初始化数据集合 +oid InitData()
        /// <summary>
        /// 初始化数据集合
        /// </summary>
        public List<Models.Dog> InitData()
        {
            list = new List<Models.Dog>() { 
                new Dog(){ID=1,Name="Dog1:xiaohei~"},
                new Dog(){ID=2,Name="Dog2:xiaobai~"},
                new Dog(){ID=3,Name="Dog3:xiaocai~"},
                new Dog(){ID=4,Name="Dog4:xiaoyang~"},
            };
            return list;
        }
        #endregion
        public ActionResult Index()
        {
            System.Text.StringBuilder sbHtml = new System.Text.StringBuilder(4000);
            //2.1处理当前业务(比如读取数据库,判断等)
            //2.2创建一个数据集合(伪数据),获取数据
            List<Models.Dog> list = InitData();
            //2.1.2遍历集合,生成html代码,存入stringBuilder
            list.ForEach(d =>
            {
                sbHtml.AppendLine("<div>" + d.ToString() + "</div>");
            });
            //2.2使用viewBag传输数据给  同名 index.cshtml 视图
            //viewBag是一个dynamic类型集合,可以动态添加任意类型的任意名称的属性和值
            ViewBag.HtmlStr = sbHtml.ToString();
            //2.3加载同名视图index.cshtml
            return View();
        }
        public ActionResult Index2()
        {
            return View();
        }
    }
}

2、建立处理逻辑
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace csdnblog.Models
{
    public class Dog
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public override string ToString()
        {
            return "ID=" + this.ID + ",Name=" + this.Name;
        }
    }
}  

3、生成试图:
 
@{
    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>

   以上就是Mvc的最简单的例子。主要是熟悉 各个层所提供的职责。


   总结:mvc架构模式,将视图层和业务层分离。这样就允许更改试图层代码而不用重新编译模型和控制器。同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。期待在项目中练习一下。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

mvc零基础学习一

完整的ASP.NET MVC架构是基于Microsoft .NET Framework 3.5,另外还使用LINQ。 MODEL是什么? 1. MVC MODEL基本上就是一个C#或者VB.NET...

零基础学习MVC(一)

完整的ASP.NET MVC架构是基于Microsoft .NET Framework 3.5,另外还使用LINQ。 MODEL是什么? 1. MVC MODEL基本上就是一个C#或者VB...

快速上手之 MVC入门实例

快速上手。今天我们来从无到有创建mvc项目,介绍一下相关的知识点。咱们开门见山。我做的简单的demo 是最基本的,具体项目中还会根据具体的业务做不同的选项。但是不影响我们明白原理和理解过程。 dem...

spring mvc与Mybatis整合——(一)基础入门--概览

一、Mybatis的前世今生:     MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了googl...

SSM框架(Spring Spring MVC Mybatis)基础入门学习3——Mybits入门实例(实例免费下载!)

上次我们一起学习了Spring的入门课程,它作为SSM框架的中心组织者,为所有其他业务层提供bean。这篇文章将学习Mybits的基础用法,一共分为3步来讲解: 1.mybatis基础配置文件; 2....

ASP.NET MVC4 WEB API入门 第二篇:ASP.NET MVC入门基础(1)——项目框架搭建

第一篇C#入门基础,简单的记录了个人认为比较常见的各类基础。第二篇将循序渐进,简单的介绍ASP .NET MVC框架。并通过一个简单的登录案例介绍一下大概的构建项目流程以及实现的逻辑。MVC是现在一种...

ASP.NET MVC4 WEB API入门 第二篇:ASP.NET MVC入门基础(2)—— 简单登录功能的实现

在上一章博客已经简单的介绍了ASP .NET MVC的基本功能以及项目架构的简单搭建,这一章主要是简单的实现登录的业务逻辑,从而实现登录的功能。 接下来通过实现简单的登录业务逻辑,以及前端页面,来简单...

Skynet基础入门例子详解(3)

服务端与客户端的Socket通信 使用Skynet的Socket通信,看官方的例子(example2/client.lua和test/testsocket.lua),不懂sproto协议的同学还...

Skynet基础入门例子详解(7)

GateServer的使用 skynet 提供了一个通用模板 lualib/snax/gateserver.lua 来启动一个网关服务器,通过 TCP 连接和客户端交换数据。 TCP 基于...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)