多视图相同模型[MVC 3]

时间:2013-07-02 16:06:49

标签: asp.net-mvc-3

我有一个模型和一个控制器用于多个视图。 该模型具有一些必填字段,但对于特定视图,我需要忽略2个特定字段的验证。 有什么方法可以忽略这两个字段的验证吗?

我正在使用asp.net MVC3。

模型代码示例:

[Required(ErrorMessage = "Campul strada este obligatoriu")]
    public string Strada { get; set; }

[DisplayName("Numar strada")]
[Required(ErrorMessage = "Campul strada numar este obligatoriu")]
public string NrStrada { get; set; }

对于9/10的视图是可以的但是对于1视图我不想被要求。

1 个答案:

答案 0 :(得分:0)

当出现这样的问题时,我通常会创建不同的视图模型。每个都有自己的验证逻辑。这样做是没有错的。

以下是与您的代码无关的示例,您可以相应地调整代码。

例如,对于创建客户,我会有一个创建客户视图模型,而对于编辑客户,我会有一个编辑客户视图模型。每个都有不同的验证集。创建客户只需要一个名字和一个姓氏。编辑客户需要更新客户记录的名字,姓氏和员工编号。添加新客户时不需要员工编号更新程序。

以下是可能的创建客户视图模型:

public class CreateCustomerViewModel
{
     [Required(ErrorMessage = "Required")]
     public string FirstName { get; set; }

     [Required(ErrorMessage = "Required")]
     public string LastName { get; set; }
}

以下是可能的编辑客户视图模型:

public class EditCustomerViewModel
{
     [Required(ErrorMessage = "Required")]
     public string FirstName { get; set; }

     [Required(ErrorMessage = "Required")]
     public string LastName { get; set; }

     [Required(ErrorMessage = "Required")]
     public string UpdatedByEmployeeNumber { get; set; }
}

这只是一个基本的例子。