我有一个包含对象的viewModel。我已经为该对象定义了一个自定义编辑器模板,它允许我编辑该对象的每个子节点。子值不是serveride所必需的(因此我没有任何必需的注释),但是如果用户到达此特定输入,则应该是必需的。
有什么方法可以在POST方法中检查这些子对象的值(在viewModel中),如果它们为null,则返回一些错误给视图?
我正在使用Razor。
答案 0 :(得分:1)
在服务器端,您可以检查操作中类的子对象,
[HttpPost]
public ActionResult Edit(MyClass myClass)
{
if (myClass.Children.Any(child => child == null))
{
foreach(var child in myClass.Children
.Where(child => child == null)
.Select((item, index) => new { Item = item, Index = index))
{
ModelState.AddModelError(
string.Format("Children[{0}]", child.Index),
"Must be required");
}
return this.View("...");
}
}
答案 1 :(得分:0)