• C#中MVC详解及MVC搭建 -转载


    C#中MVC详解及MVC搭建
    zxh... 2019-05-11 14:16:05 6050 收藏 5
    分类专栏: .net
    版权

    什么是ASP.Net MVC?
    HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大、工作量大。因此提供了ASP.Net MVC、ASP.Net WebForm等高级封装的框架,简化开发,他们的底层仍然是HttpHandler、HttpRequest等这些东西。比如ASP.Net MVC的核心类仍然是实现了IHttpHandler接口的MVCHandler。

    ASP.net WebForm、和ASP.net MVC的关系?
    都是对HttpHandler的封装框架,ASP.net WebForm是微软为了让开发ASP.Net像开发WinForm一样傻瓜化发明的框架,有很多缺点;ASP.net MVC采用了MVC的思想,更适合现代项目的开发,因此ASP.net MVC在逐步取代ASP.Net WebForm。

    为什么ASP.Net MVC更好?
    程序员有更强的掌控力,不会产生垃圾代码;程序员能够更清晰的控制运行过程,因此安全、性能、架构等更清晰。WebForm和ASP.netMVC在“入门”和“深入”两个要素之间正好相反。

    什么是MVC模式?
    模型(Model)、视图(View)、控制器(Controller)
    在这里插入图片描述

    ASP.net MVC与“三层架构”
    ASP.net MVC与“三层架构”没有任何的关系。三层架构中的UI层可以用ASP.Net MVC来实现。

    约定大于配置
    “约定大于配置”:恶心的“配置文件地狱”,基础阶段按照默认配置来,先不管复杂、难懂的“路由”等。

    ASP.net MVC 起步

        项目的创建:讲课使用VS2015,用VS2013也可以,新建项目→Visual C#→Web→【ASP.Net Web应用程序】
        ,不要勾选【将Application
        Insights添加到项目】,然后【确定】。在下一步的界面中选中“Empty”(初学者不要用MVC的模板项目,会太乱),勾选【MVC】,不要勾选【Host
        in the cloud】。一定注意:上面图标选“empty”,不要选“MVC”;下面勾选MVC,否则会生成很多没用的代码。
        在这里插入图片描述
        控制器的建立、视图的建立
        :在Controllers文件夹下点右键→【添加】→【控制器】→选择【MVC5控制器-空】,类的名字以Controller结尾,比如“TestController”,会自动在Views文件夹下创建一个Test文件夹(如果不新建就手动建,这个文件夹的名字必须是TestController去掉Controller),在Views/Test下新建视图Index(和TestController的Index方法一致):添加→视图
        在这里插入图片描述
        新建一个用来收集用户参数的类:IndexReqModel(类名无所谓)包含Num1、Num2两个属性(只要不重名,大小写都可以)。然后声明一个IndexRespModel类用来给view传递数据显示,有Num1、Num2、Result。也可以同一个类实现,但是这样写看起来比较清晰。
        在这里插入图片描述
        在Index.cshtml如下编写
        在这里插入图片描述
        调试启动后,浏览器访问:Index 画图分析执行过程、数据流动过程:当用户访问“/Test/Index?num1=1&num2=5”的时候,会找到Controllers下的TestController的Index方法去执行,把请求参数按照名字填充到Index方法的参数对象中(MVC引擎负责创建对象,给数据复制,并且进行类型的转换),reutrn
        View(resp)就会找到Views下的和自己的“类名、方法名”相对应的Index.cshtml,然后把数据resp给到Index.cshtml去显示。@model
        (要小写)
        WebApplication2.Models.IndexRespModel表示传递过来的数据是IndexRespModel类型的,@Model(大写开头)指向传递过来的对象。
        cshtml模板就是简化HTML的拼接的模板,最终还是生成html给浏览器显示,不能直接访问cshtml文件。
    ————————————————
    版权声明:本文为CSDN博主「zxh...」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_43437202/article/details/90108086

  • 相关阅读:
    jQuery中获取元素的属性方法attr()简单用法
    【经验】angularjs 实现带查找筛选功能的select下拉框
    【经验】Angularjs 中使用 layDate 日期控件
    在 VPS 上一键安装KMS服务脚本
    Windows 使用 TCPing 工具来获取 TCP延迟、端口通顺情况、已禁Ping服务器的延迟
    Linux 初级教程:初步进入 Linux 世界
    Debian/Ubuntu TCP拥塞控制技术 ——TCP-BBR 一键安装脚本
    Linux 下 iptables 配置详解
    在 Ubuntu 上安装 LaTeX
    代码审计学习之反射型XSS
  • 原文地址:https://www.cnblogs.com/bedfly/p/13358018.html
Copyright © 2020-2023  润新知