簡體   English   中英

使用實體框架poco基於不同用戶角色的MVC4數據注釋驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM