2013-07-02 129 views
0

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

我正在使用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

请更具体!哪种编程语言,您使用的是哪个框架/库?考虑提供一些示例代码。人们只能像你问的那样帮助你。 – tike

+1

您应该考虑使用ViewModels代替。发布一些代码,以便我们可以看到你在做什么。 – mezmi

+0

对于那个视图,而不是使用Html.EditorFor/Html.TextBoxFor,你可以使用Html.TextBox助手尝试,我不认为输出HTML验证所需的标记,所以你应该通过客户端这方面的验证。服务器端,您将需要检查模型状态并删除这两个字段的错误 – Slicksim

回答

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

这仅仅是一个基本的例子。

+0

,同时实施不显眼的客户端验证,我们可以忽略其中的一些 –