【问题标题】:ASP.NET Core 3.0 Endpoint Routing not working and getting 404 not foundASP.NET Core 3.0 端点路由不起作用并且找不到 404
【发布时间】:2019-11-29 17:02:11
【问题描述】:

我的端点路由在我的asp.net core 3.0 Api 中不起作用。我见过类似的问题,但我仍然不确定这里缺少什么。

我在Startup.cs中有以下内容

   {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddOptions();
            services.AddControllers()
                .SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
                .AddNewtonsoftJson(options =>
                {
                    options.SerializerSettings.Formatting = Formatting.Indented;
                    options.SerializerSettings.Converters.Add(
                        new Newtonsoft.Json.Converters.StringEnumConverter());
                });        
        }


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

            app.UseRouting();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    "test",
                    "api/v1.0/{controller}/{id?}");
            });
        }            
}

我的Ping controller 看起来像:

 public class PingController : ControllerBase
    {
        public IActionResult Get()
        {
            return Ok(true);
        }
    } 

导航到http://localhost//api/v1.0/Ping 返回 404 页面未找到。

我在这里缺少什么?我还看到 MS 建议 Web API 的属性路由,但想弄清楚为什么这首先不起作用。

【问题讨论】:

  • 我认为您在映射中缺少一个操作。 endpoints.MapControllerRoute("test", "api/v1.0/{controller}/{action=Get}/{id?}");

标签: c# asp.net-core routing


【解决方案1】:

@rfcdejong 是正确的,它缺少 {action} 令牌。 以下更正解决了该问题。

endpoints.MapControllerRoute( "test", "api/v1.0/{controller}/{action=Get}/{id?}");

【讨论】:

    【解决方案2】:

    按照此在 .Net Core 3.1 中添加额外的路由

      endpoints.MapControllerRoute(
                          name: "prod", pattern: "product/item", new { controller="Product", action="Index"});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多