【发布时间】:2021-08-20 17:27:23
【问题描述】:
在 ASP.NET Core Web API 中,我使用的是属性路由,我需要将其移至常规路由。
[ApiController]
public class HomeController : Controller
{
[Route("GetHome")]
[AllowAnonymous]
[HttpGet]
public string Getdeatils([FromBody] myclass cs, string system)
{
}
}
使用属性路由,URL localhost/GetHome?system=abc 起作用并触发 Getdeatils 方法。
我正在尝试将相同的 URL 模式移动到启动,但我无法实现它。我已经从控制器类中删除了 [ApiController] 我在启动时尝试了下面的代码。但它不起作用。
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "mycustom",
pattern: "GetHome",
defaults: "{controller=Home}/{action=Getdeatils}/{system?}");
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{system?}");
});
URL:localhost/Home/Getdeatils?system=abc - 这很好用
URL:localhost/GetHome?system=abc - 这不起作用。
如何在不更改 URL 格式的情况下实现这一点。
【问题讨论】:
-
您的默认参数看起来不对,请参阅文档:docs.microsoft.com/en-us/aspnet/core/mvc/controllers/…
标签: c# asp.net-core webapi