1

我正在開發一個具有大約90種不同形式(是,真棒)的複雜應用程序。如何根據一些要求去做複雜的現場驗證:使用實體框架基於不同用戶角色的MVC4數據註釋驗證poco的

1)現場要求基於哪個用戶登錄(角色) 2)如果其他數據字段的回答不同(動態)

這是如何使用EF5 POCO在MVC4中完成的?

我現在已經創建了數據註解必填項,像這樣:

我EF5型號POCO:位於與我EF5 POCO的

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 

[MetadataType(typeof(User_Validation))] 
public partial class User 
{  
    public int UserID { get; set; } 
    public string UserName { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string Password { get; set; } 
    public string Email { get; set; } 
} 

ValidationModels.cs文件:

public class User_Validation 
    {  
     public int UserID { get; set; } 

     [Required(ErrorMessage = "The UserName is required")] 
     public string UserName { get; set; } 

     [Required(ErrorMessage = "The FirstName is required")] 
     public string FirstName { get; set; } 

     [Required(ErrorMessage = "The LastName is required")] 
     [Display(Name="Last Name")] 
     public string LastName { get; set; } 

     [Required(ErrorMessage = "The Password is required")] 
     [DataType(DataType.Password)] 
     public string Password { get; set; } 

     [Required(ErrorMessage = "The Email is required")] 
     [DataType(DataType.EmailAddress)] 
     public string Email { get; set; } 
    } 

這工作正常和丹迪,但我怎麼做我的驗證動態??

謝謝!

回答

1

您是否需要管理員設置響應的動態要求,還是從一開始就會相當靜態?

如果我是你,我會爲每個觸發的響應創建不同的操作方法。這將允許您將表單指定爲部分視圖並根據輸入邏輯進行渲染。

如果您需要自定義字段驗證,建議您編寫自己的數據驗證框架。您可以繼承ActionFilterAttribute,它允許您在每個操作請求/響應循環之前和之後添加自定義驗證。在這裏尋找一些信息Custom Filters in MVC

此外,我會介紹一個客戶端驗證自定義jquery驗證框架,以便沒有多個回發相同的窗體,然後做自定義服務器端驗證之前動態生成下一個表單。有關信息框架看看這個博客:Jquery - Custom Validation

請記住,你不希望在你的數據存儲和視圖之間聊天很多,所以我會將你的配置存儲在一個深思熟慮的緩存實現。

我希望這會有所幫助。

+0

是的,管理員可能會根據角色更改它們。我發現這個:http://foolproof.codeplex.com/我有一種感覺,這就是我想要的。我需要研究一下。 –