基于所选条件验证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,因为另一个模态不包含所需的字段。

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

任何帮助都会很棒!

基于所选条件验证MVC3视图模型对象

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

例如,

ModelState.Remove("Item1");

然后呼叫

ModelState.IsValid

将忽略该条目的要求。

这里有一个指向文档的链接,还有一些关于是否应该在ViewModels中出现的讨论。