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”)