【问题标题】:ASP.NET Core Ignore property or set it valid on ModelState [duplicate]ASP.NET Core 忽略属性或在 ModelState 上将其设置为有效 [重复]
【发布时间】:2023-03-13 11:35:01
【问题描述】:

我在控制器上有这两个动作

[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

不需要,我什至不渲染它的局部。但是检查模型状态时验证失败。

所以我唯一的选择是。

自动将属性设置为在动作中有效,或者删除Required并使该属性在代码上的其他动作中成为必需。

我宁愿将属性设置为有效,因为它是一个可选的外键。

我该怎么做呢?

【问题讨论】:

    标签: c# validation asp.net-core


    【解决方案1】:

    您是否尝试使用ModelState.Remove("DefeitoCodigoId")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-08
      • 2018-11-10
      • 2018-06-23
      • 2020-02-19
      • 2018-10-31
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多