【问题标题】:I can not access my product ids and my product categories, here is my controller, I have the following error message:我无法访问我的产品 ID 和我的产品类别,这是我的控制器,我有以下错误消息:
【发布时间】:2022-11-27 22:02:26
【问题描述】:

AmbiguousMatchException:请求匹配多个端点。匹配:ApiBurgerNew.Controllers.BurgerController.GetBurgerByCat (ApiBurgerNew) ApiBurgerNew.Controllers.BurgerController.GetBurgerById (ApiBurgerNew)

我的控制器:

[ApiController]
    [Route("api")]
    public class BurgerController : ControllerBase
    {
        private readonly BurgerContext _context;
        private readonly IConfiguration _configuration;

        public BurgerController(BurgerContext context, IConfiguration configuration)
        {
            _context = context;
            _configuration = configuration;
        }
        
        [HttpGet]        
        public async Task<IActionResult> GetBurger()
        {
            var burger = await _context.Burger.ToListAsync();
            return Ok(burger);
        }
        
        //By category
        [HttpGet("{cat}")]
        public async Task<IActionResult> GetBurgerByCat(string cat)
        {
            var requete =                
                from b in _context.Burger                    
                join c in _context.Category                
                on b.CategoryId equals c.CategoryId                
                select new { b.BurgerId, b.Name, b.Description, b.Price, c.Category_Name };
            
            if (!string.IsNullOrEmpty(cat))
                requete = requete.Where(p => p.Category_Name.Contains(cat));
            return Ok(requete);

        }
        
        //By Id
        [HttpGet("{id}")]
        public async Task<IActionResult> GetBurgerById(int id)
        {
            var burger = await _context.Burger.FindAsync(id);
            if (burger == null)
            {
                return NotFound();
            }
            return Ok(burger);
        }
    }





I tried to modify my routes but without success

【问题讨论】:

    标签: .net api controller frameworks entity


    【解决方案1】:

    GetBurgerByCat 和 GetBurgerById 都使用相同的路由。像这样更改它(虽然这个 API 路由命名不是一个好习惯,但最好使用查询):

    [ApiController]
        [Route("api")]
        public class BurgerController : ControllerBase
        {
            private readonly BurgerContext _context;
            private readonly IConfiguration _configuration;
    
            public BurgerController(BurgerContext context, IConfiguration configuration)
            {
                _context = context;
                _configuration = configuration;
            }
            
            [HttpGet]        
            public async Task<IActionResult> GetBurger()
            {
                var burger = await _context.Burger.ToListAsync();
                return Ok(burger);
            }
            
            //By category
            [HttpGet("bycat/{cat}")]
            public async Task<IActionResult> GetBurgerByCat(string cat)
            {
                var requete =                
                    from b in _context.Burger                    
                    join c in _context.Category                
                    on b.CategoryId equals c.CategoryId                
                    select new { b.BurgerId, b.Name, b.Description, b.Price, c.Category_Name };
                
                if (!string.IsNullOrEmpty(cat))
                    requete = requete.Where(p => p.Category_Name.Contains(cat));
                return Ok(requete);
    
            }
            
            //By Id
            [HttpGet("byuser/{id}")]
            public async Task<IActionResult> GetBurgerById(int id)
            {
                var burger = await _context.Burger.FindAsync(id);
                if (burger == null)
                {
                    return NotFound();
                }
                return Ok(burger);
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2019-01-31
      • 2016-12-05
      • 2022-10-02
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多