快速上手之 MVC入门实例

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


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

demo 通过MVC 这个小项目 实现界面显示文字。


一添加controller

打开VS 新建项目。我选的mvc4

              技术分享


新建好之后 是下图这个样子。1我们看它自动的就已经生成了Models Views Controllers这三个文件夹。也就是我们所说的MVC。

                       技术分享

接下来 我们建立控制器。 右击controllers,添加--控制器。

             技术分享

注意 后缀名controller不能改,可以根据自己的需要更改选中的蓝色部分。

            技术分享

知识点:此时我们看到的新建立好的控制器类和普通的类不一样 它是继承了controller。当我们查看该controller时 发现了它的物理路径在我们新建项目的文件夹中,也就是说明这是自动添加的,并且已经自动引用了。


            技术分享

                                    技术分享

2 同时自动生成的还有一个Action方法。它用来处理业务和操作数据库。

二 在model中新建类 代码如下。

            技术分享

三添加view

在代码中 右键自己新建的defaultcontroller类。添加视图。默认视图名字和自己的controller类的名字是相同的 不用改。

            技术分享

知识点:建立好了之后 ,你会发现视图自动的添加到了views文件夹下面。一个controller里的action 可以对应一个视图。


四代码部分

 有了controller model views这三个新建类之后,在controller中添加相应代码如下。

 重点是我要把在controller中的值传到view中 是如何做到的呢。

  ①使用ViewBag得到controller中要传的内容。

using MvcDemo.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcDemo.Controllers
{
    public class TestController : Controller
    {
        //创建一个数据集合(假数据)
        // GET: /Test/
  
        /// <summary>
        /// 初始化数据集合
        /// </summary>
        public List<Models.apple> InitData()
        {
            List<Models.apple> list = new List<Models.apple>(){
                new apple(){ID=1,Name="红苹果"},
                new apple(){ID=2,Name="青苹果"}

            };
            return list;
        }

        /// <summary>
        /// action 方法 
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            System.Text.StringBuilder sbHtml = new System.Text.StringBuilder(4000);
            //处理当前业务 比如读取数据库 判断等
            //创建一个数据集合 (伪数据)
            List<Models.apple> list = InitData();

            //遍历集合 生成HTML代码 存入sbHtml
            list.ForEach(d =>
            {
                sbHtml.AppendLine("<div>"+d.ToString()+"</div>");
            });

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

    }
}


 ②在view中 直接添加语句如下。即可。

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        <!--相当于把action方法中保存的内容放在此处输出-->
     @ViewBag.HtmlStr   
    </div>
</body>
</html>


此时我们可以右键Index右键 在page inspector中查看效果。

             技术分享


总结:要一遍敲代码 一边思考。敲而不思则罔 思而不敲则殆。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。