控制器的正确网址

你能告诉我什么是控制器方法 GetProfileById 的正确 url 与属性 'id' 我尝试了很多 url,如 ' http://localhost:5000/api/Profile/GetProfileById/1 '、' http://localhost:5000/ api/Profile/ProfileById/1 ',' http://localhost:5000/api/ProfileById/1 ' 但 Postman 显示消息 'Cannot Get and my url'


这是代码:


using System.Threading.Tasks;

using Microsoft.AspNetCore.Authorization;

using Microsoft.AspNetCore.Mvc;

using SocialNetwork.Repositories;

using SocialNetwork.Repositories.GenericRepository;


namespace SocialNetwork.Controllers

{

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

    public class ProfileController : Controller

    {

        private readonly ProfileRepository repository;


        public ProfileController(IProfileRepository repository)

        {

            this.repository = (ProfileRepository)repository;

        }


        [HttpGet("{id}")]

        [ProducesResponseType(200, Type = typeof(Profile))]

        [ProducesResponseType(404)]

        public async Task<ActionResult<Profile>> GetProfileById(int id)

        {

            var profile = await repository.GetById(id);

            if(profile != null)

            {

                return new OkObjectResult(Json(profile));

            }

            return NotFound();

        }



}

}


慕田峪9158850
浏览 202回答 2
2回答

波斯汪

应该是/api/profile/<id>。您可以通过[Route("/api/[controller]")]方法上方的指令来说明这一点。然后,任何 id 都在后面的一个斜杠之后添加。因此,您localhost(或您的域)的完整路由将是http://localhost:5000/api/Profile/1

慕哥6287543

“路由到 ASP.NET Core 中的控制器操作”和“&nbsp;ASP.NET Core 中的路由”是用于此目的的好文章。在您的情况下,正确的 URL 是“&nbsp;http://localhost:5000/api/profile/1&nbsp;”。注意:如果使用 Postman 仍有问题,请搜索如何配置它。
打开App,查看更多内容
随时随地看视频慕课网APP