Ceci est mon modèle.La liaison de modèle ne fonctionne pas sur la requête POST dans ASP.NET Core 2 WebAPI
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; }
}
Et ceci est la requête POST interceptée par Fiddler
Et ceci est mon contrôleur.
[Produces("application/json")]
[Route("api/Patient")]
public class PatientController : Controller
{
[HttpPost]
public IActionResult Post([FromBody] Patient patient)
{
//Do something with patient
return Ok();
}
}
Mon problème est que je suis toujours obtenir null
pour patient
dans [FromBody] Patient patient
EDIT 1: D'après le commentaire de Ingvar J'ai fait JSON du corps de la demande comme suit:
{patient: {"name":"Leonardo","gender":"",....,"bloodGroup":""}}
mais cette fois je porte la valeur par défaut des propriétés (par exemple name: ""
et age: 0
)
EDIT 2: Ma méthode ConfigureServices
et Configure
dans le fichier Startup.cs
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();
}
probablement besoin de dériver le contrôleur api ou de faire ressembler json à {patient: {nom: "a" ...}}. Avez-vous essayé cela? – ingvar
J'ai fait et s'il vous plaît regardez ma section d'édition. – Towhid
fonctionnera-t-il avec les propriétés capitalisées (comme nom au lieu de nom). aussi, avez-vous essayé PatientController: ApiController au lieu de PatientController: Controller? afaik [frombody] fonctionnera pour apicontroller seulement – ingvar