• MVC——studying


            今天把MVC学习了一下,学习主要是从两个方面入手的,一个是基础知识的学习,另一个方面是从demo方面来学习了,通过写一个简单的demo来认识一个知识,在实践中学到更多的知识。学习的时候从这四个方面开始入手的:

            ①什么是
            ②什么时候用
            ③怎么用
            ④优缺点
      


    一、什么是MVC

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

    二、什么时候用

             MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。

    三、怎么用

    如何使用,在这里通过一个简单的demo来学习

    首先新建一个新的MVC 的web application

    建好以后是这个样子的:
    然后开始我们的编程之路——

    controllers层:
    using MVCStudy.Models;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    
    namespace MVCStudy.Controllers
    {
        //1、控制器类(继承controller)
        public class HomeController : Controller
        {
            #region 0.1初始化数据集合+void InitData()
            //创建一个数据集合(伪数据)
            List<Models.Dog> list = null;
            /// <summary>
            /// 初始化数据集合
            /// </summary>
            public List<Models.Dog> InitData()
            {
                list = new List<Models.Dog>(){
                new Dog (){ID =1,Name ="小样~~"},
                new Dog (){ID=1,Name ="小样~~"},
                new Dog (){ID =1,Name ="小样~~"},
                new Dog (){ID=1,Name ="小样~~"}
    
            };
                return list ;
            } 
            #endregion
    
            // GET: /Home/
            //2、action方法(可以看做是MVC设计模式的MOdel)
            public ActionResult Index()
            {
                System.Text.StringBuilder sbHtml = new System.Text.StringBuilder(4000);
                //2.1处理当前业务(比如读取数据库,判断等)
                //2.1.1创建一个数据集合(伪数据),获取数据
                List<Models.Dog >list=InitData ();
                //2.1.2遍历集合,生成html代码,存入sbHtml
                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();
            }
    
        }
    }
    

    views层:
    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>Index</title>
    </head>
    <body>
        <div>
            <!--
                默认razor视图会将从后台输出的字符串里包含的<转义成<
                为了不转义,使用raw方法,来输出html标签源码!
                相当于把action方法中保存的内容,放在此处输出!-->
            @Html.Raw(ViewBag.HtmlStr)
        </div>
    </body>
    </html>
    

    展示一下成果吧!


    四、优缺点


    优点:

    耦合性低
    重用性高
    生命周期成本低
    部署快
    可维护性高
    有利软件工程化管理


    缺点:
    没有明确的定义
    不适合小型,中等规模的应用程序
    增加系统结构和实现的复杂性
    视图与控制器间的过于紧密的连接
    视图对模型数据的低效率访问
    一般高级的界面工具或构造器不支持模式

  • 相关阅读:
    Python学习————正向代理和反向代理
    Python学习————drf(三)
    Python学习————drf(二)
    Python学习————drf(一)
    Python学习————python基础复习(四)
    Python学习————python基础复习(三)
    Python学习————python基础复习(二)
    Python学习————python基础复习(一)
    Python学习————Django
    51Nod1523 非回文
  • 原文地址:https://www.cnblogs.com/chenxiaochan/p/7237610.html
Copyright © 2020-2023  润新知