首页 > 解决方案 > 尝试折射控制器 - 在 api 调用中不断收到 404 错误

问题描述

我以前只使用默认创建的 SampleData 控制器。添加了我的方法,一切都很完美。创建了一个新类,粘贴了我希望的方法(拆分两个模型),编辑了我调用它们的方法,现在我得到了 404。

    class MakeController : Controller
{
    private readonly IVehicleService _vehicleService;


    public MakeController(IVehicleService vehicleService)
    {
        _vehicleService = vehicleService;
    }

    [Route("api/[controller]/Makes")]
    [HttpGet("[action]")]
    public async Task<IActionResult> MakesAsync()
    {
        var data = await _vehicleService.GetMakeAsync(0, 10);

        return Ok(data);
    }

那将是控制器和方法之一。

  GetMakes() {
   return this.http.get<Makes[]>(this.baseUrl + 'api/Make/Makes');
  }

在这里我调用了 api,它曾经可以工作,但现在它只是出错了。startup.cs 中的路由默认保留。

            app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller}/{action=Index}/{id?}");
        });

标签: c#angular

解决方案


从您发布的代码中,您可能在添加新方法时意外删除了访问修饰符,您需要确保您使用的是公共控制器,例如

 public class MakeController : Controller

推荐阅读