gpt4 book ai didi

c# - 模型绑定(bind)不适用于 ASP.NET Core 2 WebAPI 中的 POST 请求

转载 作者:可可西里 更新时间:2023-11-01 09:14:43 25 4
gpt4 key购买 nike

这是我的模型。

public class Patient
{
public string Name { get; set; }
public string Gender { get; set; }
public double Age { get; set; }
public DateTime DateOfBirth { get; set; }
public string MobileNumber { get; set; }
public string Address { get; set; }
public string Occupation { get; set; }
public string BloodGroup { get; set; }
}

这是Fiddler拦截的POST请求 enter image description here

这是我的 Controller 。

[Produces("application/json")]
[Route("api/Patient")]
public class PatientController : Controller
{
[HttpPost]
public IActionResult Post([FromBody] Patient patient)
{
//Do something with patient
return Ok();
}
}

我的问题是我总是在 [FromBody] Patient patient

中为 patient 获取 null

编辑 1:根据 ingvar 的评论,我制作了请求正文的 JSON,如下所示:

{患者:{"name":"Leonardo","gender":"",....,"bloodGroup":""}}但这次我选择属性的默认值(例如 name: ""age: 0)

编辑 2:我在 Startup.cs 文件中的 ConfigureServicesConfigure 方法

    public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddCors();
services.AddMvc();

var containerBuilder = new ContainerBuilder();
containerBuilder.RegisterType<PatientRepository>().As<IPatientRepository>();
containerBuilder.RegisterType<UnitOfWork>()
.As<IUnitOfWork>()
.WithParameter("connectionString", Configuration.GetConnectionString("PostgreConnection"));
containerBuilder.Populate(services);
var container = containerBuilder.Build();
return new AutofacServiceProvider(container);
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseCors(corsPolicyBuilder =>
corsPolicyBuilder.WithOrigins("http://localhost:3000")
.AllowAnyMethod()
.AllowAnyHeader());
app.UseMvc();
}

最佳答案

我花了整整一个小时才发现问题是我忘记在类的属性后添加 getter 和 setter。

{ 得到;放; }

希望能帮助到别人。

关于c# - 模型绑定(bind)不适用于 ASP.NET Core 2 WebAPI 中的 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46753916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com