[英]MVC4 data annotation validation based on different user roles using entity framework poco's
我正在開發一個具有約90種不同形式的復雜應用程序(是的,太棒了)。 我如何根據一些要求進行復雜的現場驗證:
1)字段要求基於登錄的用戶(角色)2)如果其他數據字段的回答不同(動態),則字段要求更改
使用EF5 POCO在MVC4中如何做到這一點?
我目前已經為必填字段創建了數據注釋,如下所示:
我的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; }
}
我的EF5 POCO所在的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; }
}
這可以正常工作,但如何使驗證動態化?
謝謝!
您是否需要管理員為響應設置動態要求,或者從一開始它們就將是靜態的?
如果我是你,我將為每個觸發的響應創建不同的操作方法。 這將允許您將表單指定為局部視圖,並根據輸入邏輯來呈現它們。
如果需要自定義字段驗證,建議編寫自己的數據驗證框架。 您可以從ActionFilterAttribute繼承,該屬性允許您在每個操作請求/響應周期之前和之后添加自定義驗證。 在這里查看一些信息,了解MVC中的自定義過濾器
另外,我將為客戶端驗證引入定制的jquery驗證框架,以便同一表單不存在多個回發,然后在動態生成下一個表單之前對服務器端驗證進行自定義。 有關信息,請查看此博客的框架: Jquery-自定義驗證
請記住,您不希望在數據存儲和視圖之間進行大量的聊天,因此我會將您的大量配置存儲在經過深思熟慮的緩存實現中。
我希望這有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.