【发布时间】:2021-06-05 06:24:16
【问题描述】:
我正在编写一个 .net core 3.1 web api,但遇到了基本路由段的问题。当我尝试将我的“id”作为段传递时,我得到了 404 未找到的条件。
例如服务器名称/api/contacts/getsmscontactlist/3
这是我的 startup.cs:
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseCors("AllowAllHeaders");
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(name: "MainAPIRouteForGet",
pattern: "api/{controller}/{action}/{id?}");
endpoints.MapControllerRoute(name: "default",
pattern: "{controller=Home}/{action=Index}");
});
这是我的控制器:
[ApiController]
[Route("api/[controller]")]
[EnableCors("AllowAllHeaders")]
public class ContactsController : ControllerBase
{
private readonly IContactManager _contactManager;
private readonly IConfiguration _configuration;
public ContactsController(IContactManager contactManager, IConfiguration config)
{
_contactManager = contactManager ?? throw new ArgumentNullException(nameof(contactManager));
_configuration = config;
}
[HttpGet("{id}:int")]
[Route("getsmscontactlist")]
public ActionResult GetSmsContactsForAccount(int id)
{
var smsRecipientsViewModel = _contactManager.GetSmsContactsForAccount(id);
if (smsRecipientsViewModel.Any())
{
return Ok(smsRecipientsViewModel);
}
return NotFound("No SMS contacts found");
}
【问题讨论】:
标签: asp.net-mvc asp.net-core routes