【问题标题】:How to configure endpoint route in ASP.NET Core如何在 ASP.NET Core 中配置端点路由
【发布时间】:2021-07-07 10:40:33
【问题描述】:

我是 ASP.NET Core 的新手,因为我的基础来自 Spring 框架 所以,我对在 asp.net 中设置端点感到困惑,所以这里有一些我的控制器和 startup.cs

控制器:

[Route("api/[controller]/[action]")]
    [ApiController]
    public class StudentController : ControllerBase
    {
        [HttpPost]
        [ActionName("GetData")]

App.UseEndpoints() 中的 Startup.cs:

 app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }

当我尝试在本地运行应用程序并访问端点 http 动词(localhost:5001/api/GetData)时,它开始显示错误代码,那么我应该如何解决这个问题?我应该在 startup.cs 中设置端点路由还是不必设置端点路由,因为在控制器中我有 [HttpPost][ActionName("GetData")]?顺便说一句,我想我正在使用最新的 asp.net 核心(虽然我不知道要检查它),谢谢

【问题讨论】:

  • 您可以从控制器中移除 [Route] 并将 [HttpPost][ActionName(..)] 替换为 [HttpPost("api/GetData")]
  • 谢谢你,我会试试你的建议,谢谢:)

标签: c# .net asp.net-core


【解决方案1】:

写作时:

[Route("api/[controller]/[action]")]

这意味着当使用此字符串的后缀向您的基域调用 http 调用时,您可以访问您的控制器\方法

在这种情况下,您要求动态选择控制器,并动态选择操作,这称为“路由模板中的令牌替换”

当你写 [controller][action] 这意味着这些在运行时是动态的 action 表示方法名 controller 表示控制器名称

在你的情况下,你应该打电话 https://localhost:5001/api/Student/GetData

更多信息可以在这里找到: https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-5.0#token-replacement-in-route-templates-controller-action-area

【讨论】:

  • 谢谢您,先生,您的解释更合乎逻辑,但我会尝试一下 :)
  • 如果您需要更多帮助,请随时与我联系
猜你喜欢
  • 1970-01-01
  • 2020-03-26
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 2020-02-23
  • 1970-01-01
  • 2021-06-10
  • 2017-07-10
相关资源
最近更新 更多