能否请您告诉带有属性'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();
}
}
}
答案 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仍然有问题,请搜索如何进行配置。