【问题标题】:How do I add an api to server?如何将 api 添加到服务器?
【发布时间】:2019-12-29 12:13:51
【问题描述】:

我在项目中添加了一个 api 控制器并更改了启动文件。但是还是不行

[Route("api/[controller]")]
[ApiController]
public class HomeApiController : ControllerBase
{
    // GET: api/HomeApi
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

}

routes.MapRoute(
    name: "default",
    template: "{culture=en}/{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
    name: "api",
    template: "api/{culture=en}/{controller=Home}/{action=Index}/{id?}");

【问题讨论】:

  • 你尝试通过什么 url 访问这个 api?注意属性 route 和 route config 的区别。
  • @Emad, /api/Home/Get - 链接,我收到 404 错误

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


【解决方案1】:

控制器上的路由属性

[Route("api/[controller]")]
public class HomeApiController : ControllerBase

将映射到

api/homeapi

因为控制器的名称被路由模板中的[controller] 标记所取代。

相应地重命名控制器

[Route("api/[controller]")]
[ApiController]
public class HomeController : ControllerBase

或者更新路由模板

[Route("api/home")]
[ApiController]
public class HomeApiController : ControllerBase

参考Routing to controller actions in ASP.NET Core

参考Routing in ASP.NET Core

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2020-09-28
    相关资源
    最近更新 更多