控制器的正确网址

时间:2018-08-09 15:05:44

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

能否请您告诉带有属性'id'的控制器方法GetProfileById正确的url我尝试了许多url,例如'http://localhost:5000/api/Profile/GetProfileById/1','http://localhost:5000/api/Profile/ProfileById/1','http://localhost:5000/api/ProfileById/1'邮递员显示消息“无法获取和我的网址”

这是代码:

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();
        }


}

}

2 个答案:

答案 0 :(得分:0)

应为IWindsorInstaller。您可以通过方法上方的/api/profile/<id>指令来说明这一点。然后,在下一个斜杠再加上一个ID。

因此,您与[Route("/api/[controller]")](或您的域)的完整路由为http://localhost:5000/api/Profile/1

答案 1 :(得分:0)

Routing to controller actions in ASP.NET Core”和“ Routing in ASP.NET Core”是用于此目的的好文章。

您的情况下,正确的URL是“ http://localhost:5000/api/profile/1”。

注意:如果Postman仍然有问题,请搜索如何进行配置。