我想为我创建的视图模型做一些条件验证。
public class MyViewModel
{
public int SelectedItem { get; set; }
public Item Item1 { get; set; }
public DetailedItem Item2 { get; set; }
}
public class Item
{
[Required]
public int Id { get; set; }
[Required]
public string Name { get; set; }
}
public class DetailedItem
{
[Required]
public int Id { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Description { get; set; }
}
我有一个绑定到SelectedItem的单选按钮,通过客户端显示或隐藏绑定到Item&的部分视图。 DetailedItem。
在表单帖子上我想验证所选模型但是如何验证。如果我使用上面的代码并执行
ModelState.IsValid
只有一个局部视图完全完成后,由于另一个模态不包含必需的字段,我会得到一个IsValid = false。
有没有办法只验证所选模型?
任何帮助都会很棒!
答案 0 :(得分:2)
是的,ModelState是一个Dictionary类,您可以使用Key从中删除一个项目。
例如,
ModelState.Remove("Item1");
然后打电话给
ModelState.IsValid
将忽略该条目的要求。
以下是documentation的链接,还有一些discussion关于此是否应在ViewModel中发生。