zoukankan      html  css  js  c++  java
  • 在 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”
     

    欢迎添加个人微信号:Like若所思。

    欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!

  • 相关阅读:
    MongoDB 副本集搭建 & 副本集扩容
    MongoDB 部署 & 基础命令
    MyBatis常见面试题:#{}和${}的区别是什么?
    MyBatis常见面试题:说说MyBatis的工作原理
    Java四种引用类型回收时机介绍
    Java虚拟机之垃圾回收器
    Servlet中过滤器、监听器和拦截器的区别
    Java里一个线程两次调用start()方法会出现什么情况
    二叉树、二叉查找树、平衡树和红黑树概念及其性质
    转:基于Redis实现延时队列
  • 原文地址:https://www.cnblogs.com/cool2feel/p/11455299.html
Copyright © 2011-2022 走看看