【发布时间】: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