首页 > 编程语言 >Asp.net MVC学习笔记(1)

Asp.net MVC学习笔记(1)

时间:2022-10-24 19:24:58浏览次数:46  
标签:Index 控制器 Asp 视图 MVC net View

     时隔多年又重新回到了这里,仿佛遇到了一个轮回。蓦然回首,15年开始对码农这个行业失望透顶,拿着4000多点工资没日没夜的写这各种增删改查,既没有精神上的成就感也没有物质上的满足,于是黯然退出了这个行业。5年过去了,历经各种磨难终于在这个远离家乡的城市里安家生存了下来,转眼间我自己的小孩也开始上学了。突然有一天我的小孩问:“爸爸你怎么不学习,我为什么做完作业以后还要学各种不同的东西?”。第一次遇到这种问题的时候顿时哑然,仔细回顾这几年工作之余干的最多的事情就是躺沙发上玩手机,确实也没有学习过额外的东西。好吧,为了能在家里营造一个好一点的学习氛围,想来想去还是重新拾起以前丢下的东西吧。由于以前一直在做客户端系统,网页端也是用的silverlight做的,所知道的web的只是也一直停留在使用webfrom拖控件的水平,于是乎就从头开始吧,新建了一个Asp.net Mvc的项目,准备做一个简单的用户权限管理的系统,边学边做吧。

    MVC是Model(模型),View(视图),Controller(控制器)的简称,用于实现Web系统的分层。View是用来和用户交互的页面,Model用来存储或处理数据,Controllor用来接收View中的请求并从Model中的到数据返回给请求的View中。顺带提一下以前写项目的时候用的多层架构,也是将项目分为UI层,数据传输层(Model),业务逻辑处理层(BLL),数据交互层(DAL),感觉MVC和和这种分层模式类似。由于知识储备有限,目前我看到的区别就是webform访问一个页面的时候具体的指向到一个具体的页面,而MVC则指向一个路由,再由路按规则转发到Controller中具体的Action方法。

    

   1、新建一个asp.net MVC项目,结构如图:

  • Content 用来存放程序运行的时候所需要的静态的资源文件,如Css,或者你要使用到的UI框架。
  • Controllers用来存放你的控制器类,创建控制器时默认以:控制器名称+Controller结尾。
  • Script用来存放系统用到的javscript 文件,系统已默认添加了jquery 、bootstrap和jquery.validate等。
  • Views 用来存放用户界面。
  • Models用来存放程序中的核心类,也可以放到单独的一个项目中。
  • Global.asax 包含了程序第一次启动时的初始化操作,如注册路由,注册过滤器,注册区域等。

 2、右键点击Controllers文件夹,选添加→控制器→MVC5控制器空,输入控制器名称以Controller结尾,比如DefaultController。系统自动为我们在控制器中添加了一个名为Index的Action,在Index区域内任意位置点击右键→添加视图-→确定,系统会在Views文件夹

下创建一个和我们的Controller同名的Default文件夹,并创建一个Index.cshtml。我们再在刚创建的控制器里面添加一个名为Edit的Action,在Edit的区域内点右键添加视图,发现View/Default下又创建了一个Edit.cshtm。到这里就可以看出,Asp.net MVC里面的每个Action都对应着View中的一个页面(或者请求)。

3、Ctr+F5运行一下,发现报错了,出现了一个熟悉的黄页面,提示:未找到视图“Index”或其母版视图,或没有视图引擎支持搜索的位置。这是因为配置了默认路由的问题,在App_Start下找到RouteConfig.cs,将其修改为我们自己的控制器。如下:

 public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Default", action = "Index", id = UrlParameter.Optional }//controller 里面的Home修改成我们自己Default
            );
        }

继续Ctr+F5运行,成功打开了。这里可以看出来,应用程序启动的时候默认调用了DefaultController中的Index方法。

4、Asp.net MVC的每个请求最终归结到Action上,Action再去向处理业务逻辑的方法去请求数据并返回给View。

5、再说下Views文件夹下的Shared文件夹。这里用来存储我们的视图模板,类似于webform的自定义控件的概念,用来定义一些我们在其他的视图页面中可以通用的东西,比如对js、css的引用。可以针对你的应用程序页面的不同风格,定义不同的布局样式,比如列表页,表单页,单页等不同的布局。在控制器中点右键添加视图的时候勾选使用布局样式就可以选择已经定义好的模板了。

 

标签:Index,控制器,Asp,视图,MVC,net,View
From: https://www.cnblogs.com/fangyangwa/p/16821173.html

相关文章

  • 【 云原生 | kubernetes 】资源对象 - 持久化存储PV,PVC
    前言:这篇文章我们了解了Volume,还有ProjectVolume这个特殊的卷,它不是用来存储容器的数据,而是为容器提供预先定义好的数据。今天我们了解一下持久卷(PersistentVolume)......
  • Net6 EfCore 值对象类型和从属实体类型
    十年河东,十年河西,莫欺少年穷学无止境,精益求精想申请微软MVP,无奈只有博客园有贡献,今天加了一个现任的微软MVP,据他所说,目前微软MVP申请比以前严格,仅仅博客园分享微软知识是......
  • ASP.NET Web API RC版本新特性:Web API的帮助文档制作
    InfoQ上有一篇文章是使用IAPIExplorer列举ASP.NETWebAPI,文章针对的版本是ASP.NETWebAPIBeta版本写,IAPIExplorer已经包含在RC版本里了...InfoQ......
  • http响应Last-Modified和ETag以及asp.net web api实现
    基础知识1)什么是”Last-Modified”?在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标........
  • hibernate的OneToMany映射
    hibernate的OneToMany和ManyToOne映射1、前言在数据库中,不管一对多或者多对一都统称为:一对多。@OneToMany和@ManyToOne指定了一对多的关系。2、@OneToMany使用外键映射......
  • .NET 生态系统的蜕变之 .NET 6云原生
    云原生的英文名是cloudnative,native就是土著的意思,也就是土著对当地的环境是非常适应的,在云的环境和传统的数据中心是非常不同的,云原生就是要用的云的技术来构建应用,利用......
  • .NET 生态系统的蜕变之 .NET 6
    .NET6是自.NET4框架以来生态系统看到的最大版本更新,虽然.NETCore是2014年开始非常大的一项重大战略举措,但是.NET6是真正的具有强大动力的非常重要的版本。2021年11月......
  • .NET 5.0 Docker 镜像 错误修复方法
    在给​​eshopondapr​​打镜像的时候碰到了3个错误1、restore:ReceivedanunexpectedEOFor0bytesfromthetransportstream:​​https://github.com/NuGet/Home/i......
  • 在WSL2中 安装 .NET Core SDK 进行Linux 开发工作
    安装WSL1、打开WINDOWS功能,勾选子系统选项​​​​2、打开商店搜索WSL,安装ubuntu我这里的系统版本是:18.04如何查看ubuntu系统版本sudolsb_release-a​​​​3、打开ubuntu......
  • Java 生态碎片化 和 .NET生态的一致性
    .NETCore是以MIT协议开源,Java是GPL协议开源。Java8SDK升级Oracle要收费这件事对于很多小公司是有着重大的影响的,Java生态越发碎片化,有众多的OpenJDK发行版,腾讯云和阿里......