首页 > 解决方案 > 我的 get 方法有错误,它显示 404 错误 .net 核心和角度

问题描述

当我在我的 api 中向 api 发送请求时出现问题,我的 post methd 和 getAllUsers 它的工作,但 GetUser 方法不起作用,它显示 404 错误我试图解决它我使用了很多路由但仍然是这个问题,所以如果有人可以帮我解决这个问题这是我的api代码:

 [EnableCors("MyPolicy")]
    [Route("api/Login")]
    [ApiController]
    public class LoginController : ControllerBase
    {
        
       
        [EnableCors("MyPolicy")]
        [HttpGet]
        public IEnumerable<User> GetAllUsers()
        {
            IUserRepository obj = new UserRepository();
            return obj.GetAll();
        }

        [Route("api/Login/GetUser/{id?}")]
        [HttpGet]
        public User GetUser(int id)
        {
            IUserRepository obj = new UserRepository();
            return obj.Get(id);

        }


        [HttpPost]
        public User PostAddUser(User item)
         {
            IUserRepository obj = new UserRepository();
            return obj.Add(item);
        }

这是我在 angular 中的服务:

Load(id:number){
        debugger;
        return  this.httpcli.get("https://localhost:44366/api/Login/GetUser?id="+id);


    }
 

这是我在核心 api 中的 startup.cs:

      public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options => options.AddPolicy(name: "MyPolicy", builder => builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()));    

            services.AddControllers();
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo { Title = "LoginApi", Version = "v1" });
            });
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
           

            app.UseHttpsRedirection();
            app.UseRouting();

            app.UseCors("MyPolicy");

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }
    }
}
 

标签: c#angularasp.net-core.net-core

解决方案


更改动作属性路由:

           [Route("~/api/Login/GetUser/{id?}")]
           public User GetUser(int id)
        {
            IUserRepository obj = new UserRepository();
            return obj.Get(id);

        }

和网址:

this.httpclient.get("https://localhost:44366/api/Login/GetUser/"+id)

推荐阅读