C# ASP.NET Core忽略属性或将其设置为在ModelState上有效
我在控制器上有这两个动作C# ASP.NET Core忽略属性或将其设置为在ModelState上有效,c#,validation,asp.net-core,C#,Validation,Asp.net Core,我在控制器上有这两个动作 [HttpPost] [ValidateAntiForgeryToken] public IActionResult AddComDefeito(PecaRegisto pecaRegisto) { if (!ModelState.IsValid) { return PartialView("_AddComDefeitoPartial", pecaRegisto); }
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult AddComDefeito(PecaRegisto pecaRegisto)
{
if (!ModelState.IsValid)
{
return PartialView("_AddComDefeitoPartial", pecaRegisto);
}
return PartialView("_AddComDefeitoPartial", new PecaRegisto());
}
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult AddSemDefeito(PecaRegisto pecaRegisto)
{
if (!ModelState.IsValid)
{
return PartialView("_AddSemDefeitoPartial", pecaRegisto);
}
return PartialView("_AddSemDefeitoPartial", new PecaRegisto());
}
这就是模型
public class PecaRegisto
{
public int Id { get; set; }
[Required]
[Range(1, int.MaxValue)]
public int Quantidade { get; set; }
[Required]
[Display(Name = "Referência")]
public int ReferenciaId { get; set; }
public Referencia Referencia { get; set; }
[Required]
[Display(Name = "Defeito")]
public int? DefeitoCodigoId { get; set; }
public DefeitoCodigo DefeitoCodigo { get; set; }
public int ProducaoRegistoId { get; set; }
public ProducaoRegisto ProducaoRegisto { get; set; }
}
在我的一个行动中,财产
DefeitoCodigoId
不需要,我甚至不在局部渲染它。但是,检查modelstate时验证失败
所以我唯一的选择是
在操作中自动设置属性有效,或删除必需的,并在代码的其他操作中设置必需的属性
我宁愿将属性设置为有效,因为它是可选的外键
但是我该怎么做呢?您是否尝试使用
ModelState.Remove(“defeitocdigoid”)