ASP.NET Core 3.0 端点路由无法正常工作并且未找到 404
ASP.NET Core 3.0 Endpoint Routing not working and getting 404 not found
我的端点路由在我的 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 returns 找不到 404 页面。
我在这里错过了什么?我还看到 MS 建议为 Web Apis 进行属性路由,但想弄清楚为什么这首先不起作用。
@rfcdejong 是正确的,它缺少 {action}
令牌。
以下更正解决了该问题。
endpoints.MapControllerRoute( "test", "api/v1.0/{controller}/{action=Get}/{id?}");
按照此操作在 .Net Core 3.1 中添加额外的路由
endpoints.MapControllerRoute(
name: "prod", pattern: "product/item", new { controller="Product", action="Index"});
我的端点路由在我的 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 returns 找不到 404 页面。
我在这里错过了什么?我还看到 MS 建议为 Web Apis 进行属性路由,但想弄清楚为什么这首先不起作用。
@rfcdejong 是正确的,它缺少 {action}
令牌。
以下更正解决了该问题。
endpoints.MapControllerRoute( "test", "api/v1.0/{controller}/{action=Get}/{id?}");
按照此操作在 .Net Core 3.1 中添加额外的路由
endpoints.MapControllerRoute(
name: "prod", pattern: "product/item", new { controller="Product", action="Index"});