• ASP.Net MVC--起步


    ASP.Net MVC

    ASP.NET MVC 是Windows系统下面的Web研发框架,有Microsoft提供。MVC顾名思义:Model, View, Controller.是UI端分层的三层模式。跟三层架构有着本质区别。.Net MVC彻底的分离了前后端,以及抽象层结构的依赖注入,横切编程模式。用于模型架构的ModelMedata,用于模型验证的ValidateProvider,用于数据提供的ValueProvider,用于数据绑定的ModeBinder,用于视图绑定的ViewEngine引擎等。构成了Asp.Net MVC架构的模式。

    ASP.NET WebForm和ASP.NET MVC的关系

    两者都是对HttpHandler的封装框架,ASP.NET MVC的思想,更适合现代项目的开发,因此会逐步取代WebForm

    为什么ASP.NET MVC更好

    程序员有更强的掌控力,不会产生垃圾代码;程序员能够更清晰的控制运行过程,因此更安全、性能和架构等更清晰。入门“难”,深入“相对比较简单”

    什么是MVC模式

    模型(Model)、视图(View)、控制器(Controller)Model负责在View和控制器之间进行数据的传递(用户输入的内容封装成Model对象,发送给Controller);要显示的数据由Controller放到Model中,然后扔给View去显示。Controller不直接和View交互

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

    创建项目

    1、新建项目——C#——Web——ASP.NET Web应用程序(不要勾选“将Application Insights添加到项目”)——确定;选中“Empty”——勾选MVC(不要勾选Host in the cloud)——确定

    控制器的建立和视图的建立

    在Controller文件夹下右键——添加——控制器——选择“MVC5控制器-空”,
    注意:类的名字以Controller结尾,会自动在View文件夹下创建一个对应名字的文件夹(没有就手动创建文件夹)
    在View/文件夹名字 下创建视图Index(和XXXController的Index方法一致)
    注意:添加视图时,模板选择Empty,不要勾选创建为分部视图和使用布局页

    新建一个用来收集用户参数的类IndexReqModel(类名无所谓,可以随便起)包含Num1、Num2两个属性(只要不重名,大小写都可以)然后声明一个IndexRespModel类用来给view传递数据显示,有Num1、Num2、Result。也可以同一个类实现,但是这样写看起来比较清晰代码:

    public class TestControler:Controller
    {
    	public ActionResult Index(IndexReqModel model)
    	{
    		IndexReqModel resq = new IndexReqModel();
    		resq.num1 = model.Num1;
    		resq.num2 = model.Num2;
    		resq.result = model.Num1 + model.Num2;
    		return View(resq);
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    Index.cshtml

    @model Test1.Models.IndexReqModel
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta name="viewport" content="width=device-width" />
    		<title>Index</title>
    	</head>
    	<body>
    		<div> 
    			<input type="text" value="@Model.Num1" />+<input type="text" value="@Model.Num2" />=@Model.Result
    		</div>
    	</body>
    </html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    浏览器访问

    在浏览器访问:http://localhost:56919/Test/Index?num1=1&num2=2
    ps:每个人项目配置端口不尽相同,查看项目配置

    执行过程、数据流动分析:

    1. 当用户访问“Test/Index?num1=1&num2=2”的时候,会找到Controller下的TestController的Index方法去执行,
    2. 把请求参数按照名字填充到Index方法的参数对象中(MVC引擎负责创建对象,给数据赋值,并且进行类型的转换),
    3. return View(resq)就会找到Views下的和自己的“类名、方法名”相对应的Index.cshtml,然后把数据resp给到Index.cshtml去显示。

    注意:
    1,@model Test1.Models.IndexReqModel //这里的model要小写开头,表示传递过来的数据是IndexReqModel类型的

    2,@Model指传递过来的对象 //这里的Model要大写开头

    3,cshtml模板就是简化HTML的拼接的模板,最终还是生成html给浏览器显示,不能直接访问cshtml文件

  • 相关阅读:
    【docker桌面版】windows使用docker搭建nginx
    国科大-计算机算法设计与分析-卜东波作业3
    【微信小程序】运行机制和更新机制你了解吗
    Kubernetes在rancher中自定义应用商店
    服务器发回了不可路由的地址。使用服务器地址代替,宝塔系统 ftp设置,fillza ftp 如何设置 被动模式的ip端口 ,阿里云设置
    C++牛客知识点
    win10实现nfs文件共享II
    什么是指标体系,怎么搭建一套完整的指标体系?(附PDF素材)
    vue项目的创建——总结版
    谷粒商城10——分布式缓存Redis 分布式锁Redisson SpringCache自定义缓存配置
  • 原文地址:https://blog.csdn.net/huan13479195089/article/details/127135256