Problem mapping new api controller added to Razor pages

I have tried adding an API controller to a Razor pages project in .Net core. I added a Controllers folder to my project, clicked on add item and chose new controller. The pages run on the local host but when I tried testing the default GET using


in Postman, I get a 404 error.

The code Visual Studio generated was:

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

        // GET api/<APIController>/5
        public string Get(int id)
            return "value";

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


(I’ve removed the PUT and DELETE methods). I am not sure how this is mapped.

I assume that the API is running on the same port as the rest of the app. Is this correct?

In the mapping “api/[controller]”, what should I be putting for [controller]. Do I need to instantiate an APIController object somewhere?

Any advice would be greatly appreciated!


If you want to use an API Controller in razor page project,you can do like this:


public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

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

And then if you want to go to Get,you need to use https://localhost:44348/api/API as Chetan Ranpariya said.