我有一个包含对象的 viewModel。我为该对象定义了一个自定义编辑器模板,它允许我编辑该对象的每个子对象。子值在服务器端不是必需的(所以我没有任何必需的注释),但是如果用户到达这个特定的输入,它应该是必需的。
有什么方法可以在 POST 方法中检查这些子对象(在 viewModel 中)的值,如果它们为空,则向视图返回一些错误?
我正在使用剃须刀。
我有一个包含对象的 viewModel。我为该对象定义了一个自定义编辑器模板,它允许我编辑该对象的每个子对象。子值在服务器端不是必需的(所以我没有任何必需的注释),但是如果用户到达这个特定的输入,它应该是必需的。
有什么方法可以在 POST 方法中检查这些子对象(在 viewModel 中)的值,如果它们为空,则向视图返回一些错误?
我正在使用剃须刀。
在服务器端,您可以在操作中检查类的子对象,
[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("...");
}
}