【问题标题】:Validating a MVC3 viewmodel object based on a selected condition基于选定条件验证 MVC3 视图模型对象
【发布时间】:2013-06-27 03:20:10
【问题描述】:

我想对我创建的视图模型进行一些条件验证。

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

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

任何帮助都会很棒!

【问题讨论】:

    标签: c# asp.net-mvc-3 validation


    【解决方案1】:

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

    例如,

    ModelState.Remove("Item1");
    

    然后调用

    ModelState.IsValid
    

    将忽略该条目的要求。

    这里有一个指向documentation 的链接,还有一些discussion 关于这个应该是否会出现在你的ViewModels中。

    【讨论】:

    • 谢谢丹。当你知道怎么做时很容易
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2012-01-05
    相关资源
    最近更新 更多