我有一个模型和一个控制器用于多个视图。 该模型具有一些必填字段,但对于特定视图,我需要忽略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视图我不想被要求。
答案 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; }
}
这只是一个基本的例子。