基于所选条件验证MVC3视图模型对象
本文关键字:视图 模型 对象 MVC3 验证 于所选 条件 | 更新日期: 2023-09-27 18:20:00
我想对我创建的视图模型进行一些条件验证。
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,因为另一个模态不包含所需的字段。
有没有办法只验证选定的模型?
任何帮助都会很棒!
是的,ModelState是一个Dictionary类,您可以使用Key从中删除一个项。
例如,
ModelState.Remove("Item1");
然后呼叫
ModelState.IsValid
将忽略该条目的要求。
这里有一个指向文档的链接,还有一些关于是否应该在ViewModels中出现的讨论。