【发布时间】:2020-12-16 07:22:12
【问题描述】:
假设我有以下课程
class A
{
[Required]
public string Name {get; set;}
[Required]
public string NickName {get; set;}
[Required]
public string UserId {get; set;}
}
从表单中,我只将名称和昵称传递给控制器,在检查模型状态之前,我只需将用户 ID 分配给 UserId 属性,如下所示
[HttpPost]
public IActionResult Save(A model)
{
model.UserId = User.GetLoggedInUserId<string>();
if (!ModelState.IsValid)
{
return View(model);
}
}
即使我在检查模型状态之前分配了用户 ID,它仍然返回验证状态 false 并抱怨用户 ID。解决这个问题的一种方法是创建一个视图模型,这会使事情变得更加复杂,因为将视图模型中的值分配给它自己的类。 知道如何解决这个问题。
注意:问题不仅在于类中的用户 ID,还可能有其他属性可能不会从表单传递到控制器,并且值可能会从控制器分配给它们
【问题讨论】:
标签: c# validation view controller asp.net-core-mvc