ASP.NET MVC 3过滤后期数据中的一些属性值

时间:2012-03-17 07:01:09

标签: asp.net-mvc asp.net-mvc-3 razor

我有一个类似以下的模型:

public class MyModel {

    [Required]
    public string Name { get; set; }
    public string Family { get; set; }
    [Required]
    public int Number { get; set; }
}

因此,例如在编辑视图中,我有3个Editorfor()个对象,我很有兴趣过滤此页面的帖子数据,实际上我想忽略Number字段,只想发布{{1 }}和Name我还需要Family的验证是活动的,一种方法是从Number中删除Number属性并手动定义并编写所有验证脚本通过自己,但我很有趣,知道在MVC中是否有任何更简单的方法。有没有人有任何想法?

2 个答案:

答案 0 :(得分:1)

手动控制所有验证和模型绑定太复杂且容易出错。您应该使用ViewModels

public class SomeSpecificViewModel
{
    [Required]
    public string Name { get; set; }
    public string Family { get; set; }
}

public ActionResult SomeSpecificAction(SomeSpecificViewModel model)
{
   //...
}

现在MVC将只验证姓名和家庭

答案 1 :(得分:0)

视图中未填写的任何值都不会发布到控制器。但是,如果未填写[Required]字段,则ViewModel.isValid将为false。