问题映射新 api 控制器添加到 Razor 页面

Problem mapping new api controller added to Razor pages

我尝试将 API 控制器添加到 .Net 核心中的 Razor 页面项目。我在我的项目中添加了一个 Controllers 文件夹,单击添加项目并选择新控制器。本地主机上的页面 运行 但是当我尝试使用

测试默认 GET 时
https://localhost:44348/api/ 

在 Postman 中,我收到 404 错误。

生成的代码 Visual Studio 是:

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

        // GET api/<APIController>/5
        [HttpGet("{id}")]
        public string Get(int id)
        {
            return "value";
        }

        // POST api/<APIController>
        [HttpPost]
        public void Post([FromBody] string value)
        {
        }

    }
}

(我删除了 PUT 和 DELETE 方法)。我不确定这是如何映射的。

我假设 API 运行ning 在与应用程序其余部分相同的端口上。这是正确的吗?

在映射“api/[controller]”中,我应该为 [controller] 添加什么。我需要在某处实例化一个 APIController 对象吗?

如有任何建议,我们将不胜感激!

如果你想在 razor 页面项目中使用 API 控制器,你可以这样做:

startup.cs:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            ...

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapRazorPages();
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }

然后如果你想去Get,你需要像Chetan Ranpariya说的那样使用https://localhost:44348/api/API