1

我想为我创建的视图模型做一些条件验证。

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,因为另一个模式不包含必填字段。

有没有办法只验证选定的模型?

任何帮助都是极好的!

4

1 回答 1

2

是的,ModelState 是一个 Dictionary 类,您可以使用 Key 从中删除一个项目。

例如,

ModelState.Remove("Item1");

然后调用

ModelState.IsValid

将忽略该条目的要求。

这是文档的链接,还有一些关于这是否应该出现在您的 ViewModel 中的讨论。

于 2013-06-27T03:31:58.563 回答