在 ASP.NET Core 中安装 MVC

目录

本文出自《从零开始学 ASP.NET CORE MVC》目录 
视频课程效果更佳:从零开始学 Asp.Net Core MVC 

在ASP.NET Core 中安装 MVC

在本视频中,我们将讨论在 ASP.NET Core 应用程序中设置 MVC。

到目前为止,我们在本系列视频中使用的 ASP.NET Core 项目是使用“空”项目模板生成的。目前这个项目没有设置和安装 MVC。

两个步骤学会在 ASP.NET Core 配置 MVC

步骤 1:在 Startup.cs 文件中的 Startup 类的**ConfigureServices()**方法中,见下方代码。 这行代码将所需的 MVC 服务添加到 asp.net core 中的依赖注入容器中。

services.AddMvc();

步骤 2:在 Configure()方法中,将**UseMvcWithDefaultRoute()**中间件添加到我们的应用程序的请求处理管道中。 修改代码,如下所示。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

app.UseStaticFiles();

app.UseMvcWithDefaultRoute();

app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}

注意,我们在**UseMvcWithDefaultRoute()中间件之前放置了UseStaticFiles()中间件。 此顺序很重要,因为如果请求是针对静态文件(如图像,CSS 或 JavaScript 文件),则UseStaticFiles()**中间件将处理请求并使管道的其余部分短路。

因此, 如果请求是针对静态文件, 则不会执行**UseMvcWithDefaultRoute () **中间件, 从而避免不必要的处理。

另一方面, 如果请求是 MVC 请求, **UseStaticFiles ()**中间件将把该请求传递给 UseMvcWithDefaultRoute() 中间件, 中间件将处理请求并生成响应。

请注意, 除了UseMvcWithDefaultRoute () 中间件之外, 我们还有**UseMvc ()**中间件。现在, 让我们使用 UseMvcWithDefaultRoute() 中间件。

在我们即将推出的视频中, 当我们讨论路由时, 我们将讨论这两个中间件之间的区别。

此时,如果我们运行应用程序并导航到 URL -http://localhost:49119,我们会看到“Hello World!” 消息显示在浏览器中。

  • 使用管道中配置的 UseMvcWithDefaultRoute()中间件,当我们向 URL 发出请求时 - http://localhost:49119

  • 由于请求不是针对静态文件,因此 UseStaticFiles()中间件会将请求传递给 UseMvcWithDefaultRoute()中间件

  • 由于我们尚未在 URL 中指定控制器和操作方法段,因此 UseMvcWithDefaultRoute()中间件在 HomeController 中查找 Index()方法。

  • 由于目前我们的应用程序中没有 HomeController,因此 UseMvcWithDefaultRoute()中间件将请求传递给使用 Run()方法注册的中间件,因此我们看到“Hello World!” 此中间件生成的消息。

现在让我们看看,如果我们删除 Run()中间件会发生什么。 此时,Configure()方法中的代码必须如下所示。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

app.UseStaticFiles();

app.UseMvcWithDefaultRoute();
}

有了上面的代码,如果我们再次向 URL 发出请求 - http://localhost:49119,我们现在看到 404 错误。 这是因为 UseMvcWithDefaultRoute()中间件没有找到带有 Index()动作的 HomeController,并且管道中没有其他中间件,所以我们看到 404 错误。

添加 HomeController

在项目根文件夹中添加 Controllers 文件夹。 在“控制器”中添加一个新的控制器。 复制并粘贴以下代码。

public class HomeController
{
public string Index()
{
return "Hello from MVC";
}
}

生成解决方案并向应用程序 URL 发出请求 - http://localhost:49119。 现在,您将看到浏览器中显示的字符串 - “Hello from MVC”。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/316005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CF1479C Continuous City

CF1479C Continuous City 题意: 给定 L, R. 构造一个有向带权图, 其中点数不大于 32, 且所有边都是从较小的点指向较大的点. 假设这个有向图有 n 个点, 你需要保证从 1到n 的所有路径的权值都在 [L, R]内且不存在 x∈[L,R], 使得不存在或存在多于一条从 1 到 n 的…

Office转PDF,Aspose太贵,怎么办?

在程序开发中经常需要将Office文件转换成PDF,著名的Aspose的三大组件可以很容易完成这个功能,但是Aspose的每个组件都单独收费,而且每个都卖的不便宜。在老大的提示下,换了一种思路来解决这个问题。环境dotNetCore:2.1CentOS:7.5D…

Codeforces Round #541 (Div. 2)

Codeforces Round #541 (Div. 2) 题号题目知识点ASea Battle思维BDraw!贪心模拟CBirthday思维DGourmet choiceEString MultiplicationFAsya And KittensGMost Dangerous Shark

收起.NET程序的dll来

作为上床后需要下床检查好几次门关了没有的资深强迫症患者,有一个及其搞我的问题,就是dll问题。曾几何时,在没有nuget的年代,当有依赖项需要引用的时候,只能通过文件引用来管理引用问题,版本问题&#xff0…

CF1479D Odd Mineral Resource

CF1479D Odd Mineral Resource 题意: 给定一棵树,每个点有颜色 cic_ici​,多次查询,每次给定 u,v,l,r,你需要给出一个颜色 x,使得 x 满足: x∈[l,r]x\in [l,r]x∈[l,r] x在u到v的路径上出现了…

从壹开始 [ Ids4实战 ] 之三║ 详解授权持久化 用户数据迁移

哈喽大家周三好,今天终于又重新开启 IdentityServer4 的落地教程了,不多说,既然开始了,就要努力做好?。书接上文,在很久之前的上篇文章《二║ 基础知识集合 & 项目搭建一》中,我们简单的说了说 Identi…

Codeforces Round #516 (Div. 2Div.1)

Codeforces Round #516 (Div. 2&&Div.1) (Div.1) 题号题目知识点AMake a triangle!贪心题BEquations of Mathematical Magic推公式COh Those Palindromes推导题(猜结论)DLabyrinthbfs剪枝EDwarves, Hats and Extrasensory Abilities思维构造FCandies for ChildrenGLas…

微软XAML Studio - WPF, UWP, Xamarin等技术开发者的福音

最近在继续倒腾WPF的项目,继续使用Caliburn.Micro和Xceed来堆代码。每次调试xaml上的binding,都有种要疯的赶脚。今天路过 https://channel9.msdn.com/ 浏览 WPF相关的学习视频时,遇到微软推荐的相关视频 - XAML sutdio简介https://channel9.…

CF1063A Oh Those Palindromes

CF1063A Oh Those Palindromes 题意: 一个非空字符串叫做回文串。如果它从左到右,从右到左读相同,那么它就是回文串。 例如,“ABCBA”,“A”和“ABBA”都是回文串,而“ABAB”和“XY”则不是。 如果可以通过从字符串…

AddMvc 和 AddMvcCore 的区别

目录本文出自《从零开始学 ASP.NET CORE MVC》目录 视频课程效果更佳:从零开始学 Asp.Net Core MVC ASP.NET Core 为什么有 AddMvc 和 AddMvcCore 他们是什么关系?在本视频中,我们将讨论 AddMvc()和 AddMvcCore()方法之间的区别。要在 ASP.NE…

CF1063B Labyrinth

CF1063B Labyrinth 题意: 你正在玩一款电脑游戏。在其中一关,你位于一个 n 行 m 列的迷宫。每个格子要么是可以通过的空地,要么是障碍。迷宫的起点位于第 r 行第 c 列。你每一步可以向上、下、左、右中的一个方向移动一格,前提是…

浅谈容量规划

俗话说,”人无远虑,必有近忧”,容量规划就是”远虑”。所谓容量规划,是一个产品满足用户目标需求而决定生产能力的过程。当产品发展到一个较为稳定成熟的阶段,产品的整体处理能力的把控自然是不可或缺,尽管…

CF1063C Dwarves, Hats and Extrasensory Abilities

CF1063C Dwarves, Hats and Extrasensory Abilities 题意: 首先题目会给出 n ,表示要输入多少点。 然后你输出n 个点的坐标,每输出一个点会告诉你这个点的颜色是黑色或者白色。 最后你需要输出两个点的坐标代表一条直线,这条直线…

Blazor——Asp.net core的新前端框架

Blazor是微软在Asp.net core 3.0中推出的一个前端MVVM模型,它可以利用Razor页面引擎和C#作为脚本语言来构建WEB页面,如下代码简单演示了它的基本功能:和Angular JS和VUE的模型非常类似,Blazor 支持大多数应用所需的核心方案&#…

CF1149B Three Religions

CF1149B Three Religions 题意: 给定长度为 n 的母串和三个子串s1,s2,s3s_1,s_2,s_3s1​,s2​,s3​ 。初始时子串均为空。有 q 次询问。你需要支持两种操作:向某个子串末尾添加一个字母,或者删去某个子串末尾的字母。在每次操作后&#xff…

【译文】领域模型的五个特征

我在这篇博客文章中,我试图给领域模型下一个非常合适的定义,我发现我的这些定义都不太妥当,不过,我们还是可以先来看一下wiki百科对领域驱动模型下的定义:问题解决和软件工程中的领域模型可以被认为是感兴趣的领域&…

Codeforces Round #556 (Div. 1Div. 2)

Codeforces Round #556 (Div. 1&&Div. 2) 题号题目知识点AStock Arbitraging贪心BTiling Challenge贪心CPrefix Sum Primes构造DThree Religions线性dpETree Generator™FAbandoning RoadsGElection Promises

使用ASP.NET Core 实现Docker的HealthCheck指令

写在前面HealthCheck 不仅是对应用程序内运行情况、数据流通情况进行检查, 还包括应用程序对外部服务或依赖资源的健康检查。健康检查通常是以暴露应用程序的HTTP端点的形式 实施,可用于配置健康探测的的场景有 :容器或负载均衡器 探测应用状…

VS Code 中有哪些好用的 Azure 插件?

在之前的文章中,我们提到了 Amazon、Google、IBM、Red Hat、Salesforce、Pivotal 等大厂都在 VS Code 中有提供相应的开发工具:亚马逊上了 VS Code 的船,还有哪些大厂也上了船?微软必定更是把 VS Code 作为其最重要的开发者平台了…

CF1592E Bored Bakry

CF1592E Bored Bakry 题意: 给你长度为n的数组a,现在定义一段区间[l,r]为good,如果al&al1&...&ar>al⊕al1⊕...⊕ara_{l}\& a_{l1}\&...\&a_{r}>a_{l}⊕a_{l1}⊕...⊕a_{r}al​&al1​&...&ar​&…