0

我有一个模型和一个控制器用于多个视图。该模型有一些必填字段,但对于特定视图,我需要忽略 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 观点,我不想被要求。

4

1 回答 1

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; }
}

这只是一个基本的例子。

于 2013-07-03T12:23:27.003 回答