• .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控制器方法

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

  • 相关阅读:
    Spark Streaming(一)
    ACID
    SparkSQL
    scala样例类
    centos7 防火墙有关命令
    HBase优化
    scp
    HBase与Hive
    HBase与MapReduce交互
    Hadoop安全模式
  • 原文地址:https://www.cnblogs.com/Groveer/p/12030311.html
Copyright © 2020-2023  润新知