c# - 将两个参数传递给 api 时出现 404
问题描述
我正在尝试在 .net core 3.1 上制作一个简单的 api,我删除了默认的东西。我提出了一个新的起点,但尽管付出了很多努力和改变,我仍然得到了 404
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
在属性中,启动资源管理器:
api/Servicio/GetServicio/tecnico/Pedro/semanaDelAno/8
控制器
[Route("api/Servicio")]
public class ServicioController : Controller
{
private readonly ApplicationDbContext _context;
public ServicioController(ApplicationDbContext context)
{
_context = context;
}
// POST: api/PostServicio
[HttpPost]
public async Task<ActionResult<Servicio>> PostServicio(Servicio servicio)
{
_context.Servicio.Add(servicio);
await _context.SaveChangesAsync();
return CreatedAtAction(nameof(GetServicio), new { id = servicio.Id }, servicio);
}
// GET: api/GetServicio/5
//[HttpGet("{tecnico}/{semanaDelAno}")]
[HttpGet("GetServicio/{tecnico}/{semanaDelAno}")]
public async Task<ActionResult<Servicio>> GetServicio(string tecnico, int semanaDelAno)
{
var servicio = await _context.Servicio.FirstOrDefaultAsync(i => i.Tecnico == tecnico && i.SemanaDelAno == semanaDelAno);
if (servicio == null)
{
return NotFound();
}
return servicio;
}
解决方案
假设 tecnico=Pedro 和 semanaDelAno=8,你必须使用这个 url
~/api/Servicio/GetServicio/Pedro/8
对于 GetServicio 操作:
[HttpGet("GetServicio/{tecnico}/{semanaDelAno}")]
public async Task<ActionResult<Servicio>> GetServicio(string tecnico, int semanaDelAno)
{
.... your code
}
推荐阅读
- regex - 使用 Perl 发出匹配重音字符
- vb.net - 如何在计算总成绩之前从列表框中删除两个最低成绩?
- oracle - 将日期转换为字符串的问题
- laravel - Vue.js 路由器视图没有组件?
- apache-spark - 我如何将列数组从 df 拆分为新的 df?
- android - 防止关闭具有 GPS 跟踪功能的应用程序
- regex - 如何检查给定的用户名是否至少有一个红宝石字母
- react-native - React-Native:选择器无法选择任何其他项目。错误:操作可能没有未定义的“类型”属性。你有没有拼错一个常数?
- double - 这是浮点错误吗?乘法产生错误的结果
- c# - 如何在 C# WCF 中接收 Stripe api webhook