c# - 我的 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();
});
}
}
}
解决方案
更改动作属性路由:
[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)
推荐阅读
- machine-learning - 插补仅用于特征选择步骤,但不适用于 sklearn 管道中的模型输入
- c# - 如何在不同控制器的视图中显示计数
- javascript - 上传图片然后使其可移动和可调整大小
- java - EditTextPreference 不适用于字符串
- c++ - 在 Visual Studio 2015 上使用多个运行时库
- graphql - proxy.writeQuery 奇怪的行为
- python - Matplotlib 条形图 X 轴标签顺序
- android - 如何解决 Unable to resolve dependency for ':@debug/compileClasspath': Could not resolve com.google.auto.value:auto-value-annotations:1.6.5
- java - 使用 Gmail API 将请求正文写入服务器时出错
- c# - 对资源的有效锁定,由字符串标识