【发布时间】:2021-06-26 01:45:30
【问题描述】:
我想将一个或多个产品(取决于用户选择的数字)发布到我的 api,我有这个产品模型:
public class Product
{
[Key]
public int Id { get; set; }
[Required]
[StringLength(50)]
public string DescricaoProduto { get; set; }
[Required]
public float Preco { get; set; }
[Required]
[StringLength(50)]
public string Foto { get; set; }
[Required]
[NotMapped]
public IFormFile FotoFile { get; set; }
public int LayoutNumero1Id { get; set; }
public LayoutNumero1 LayoutNumero1 { get; set; }
}
这个类是另一个名为 LayoutNumero1 的类的外键,就像我说的那样,它可以是一个或多个产品。我想知道如何创建一个可以使用表单数据(FromForm 类型作为参数)获取此产品列表的端点。现在我有这个:
[HttpPost("AddProductsLayoutN1")]
public async Task<IActionResult> AddProductsLayoutN1([FromForm] List<Product> produto)
{
if (ModelState.IsValid)
{
if (produto == null)
{
throw new NullReferenceException("Produto model não existe!");
}
foreach (var p in produto)
{
p.Foto = await SaveImage(p.FotoFile);
_context.Produtos.Add(p);
await _context.SaveChangesAsync();
}
return Ok(new Response
{
Message = "Produto adicionado!",
IsSucess = true
});
}
return BadRequest(new Response
{
Message = "Erro na adição do produto",
IsSucess = false,
});
}
(顺便说一下,我试图在一个单独的函数中添加对象 LayoutNumero1,其中只有文本字段,现在我尝试这个仅用于添加产品(外键),重点是制作两个不同的请求,你认为它是解决这类问题的好方法吗?)
非常感谢!!
【问题讨论】:
标签: c# asp.net-core asp.net-core-webapi