zoukankan      html  css  js  c++  java
  • .NET Core 3终结点不能映射控制器

    今天在学.net core的时候发现了一个问题,终结点死活映射不了自己添加的控制器,后经过研究发现解决方法,可能这个问题不应该叫做问题,可是我是初学者,就把这个问题给拎出来。本人开发环境 VS2019+.Net Core 3.1,问题重现过程:

    1.新建Web Core项目,选择空项目

    2.新建文件夹“Controller”,右键该文件夹->添加->控制器->API控制器-空->设置名称为“HomeController.cs”

    3.修改路由特性为 [Route("[controller]")] 

    4.在该路由器类下添加Index函数,返回Test字符串

    5.修改Startup类中Configure函数:

    原代码:

    app.UseEndpoints(endpoints =>
    {
      endpoints.MapGet("/", async context =>
      {
        await context.Response.WriteAsync("Hello World!");
      });
    });    

    修改后的代码:

    app.UseEndpoints(endpoints =>
    {
      endpoints.MapControllerRoute("Default", "{controller=Home}/{action=Index}/{id?}");
    });

    运行程序显示404

    然后将HomeController中的两个特性删除就可以正常运行

    原因是API控制器和MVC控制器是不一样的

    MVC控制器通过URL选择action方法

    API控制器根据HTTP请求方法的不同来选择API控制器方法

    两种控制器使用的方法不一样,所以不能混淆使用

  • 相关阅读:
    Spring Boot邮件功能
    jenkins自动部署
    spring boot定时任务解析
    类的加载classload和类对象的生成
    排序算法
    Robbin负载均衡
    ActiveMQ消息中间件
    hystrix熔断器
    css3整理--calc()
    css3整理--media
  • 原文地址:https://www.cnblogs.com/Groveer/p/12030311.html
Copyright © 2011-2022 走看看