C# 使用实体框架poco',基于不同用户角色的MVC4数据注释验证;s
我正在开发一个复杂的应用程序,包含大约90种不同的表单(是的,很棒)。如何根据以下几个要求进行复杂的现场验证: 1) 字段要求基于登录的用户(角色) 2) 如果其他数据字段的回答不同,则字段要求会发生变化(动态) 如何使用EF5 POCO在MVC4中实现这一点 我目前已经为必填字段创建了数据注释,如下所示: 我的EF5 POCO车型:C# 使用实体框架poco',基于不同用户角色的MVC4数据注释验证;s,c#,entity-framework,validation,asp.net-mvc-4,data-annotations,C#,Entity Framework,Validation,Asp.net Mvc 4,Data Annotations,我正在开发一个复杂的应用程序,包含大约90种不同的表单(是的,很棒)。如何根据以下几个要求进行复杂的现场验证: 1) 字段要求基于登录的用户(角色) 2) 如果其他数据字段的回答不同,则字段要求会发生变化(动态) 如何使用EF5 POCO在MVC4中实现这一点 我目前已经为必填字段创建了数据注释,如下所示: 我的EF5 POCO车型: using System; using System.Collections.Generic; using System.ComponentModel.DataA
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; }
}
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; }
}
与我的EF5 POCO一起找到的ValidationModels.cs文件:
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; }
}
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,它允许您在每个操作请求/响应周期前后添加自定义验证。在这里寻找一些信息 此外,我还将为客户端验证引入一个自定义jquery验证框架,以便同一表单没有多个回发,然后在动态生成下一个表单之前进行自定义服务器端验证。有关框架的信息,请查看此博客: 请记住,您不希望在数据存储和视图之间进行大量的聊天,因此我将尽可能多地将您的配置存储在经过深思熟虑的缓存实现中
我希望这会有所帮助。您需要管理员为响应设置动态要求,还是从一开始就相当静态 如果我是你,我会为每个触发的响应创建不同的操作方法。这将允许您将表单指定为局部视图,并基于输入逻辑呈现它们 如果需要自定义字段验证,建议编写自己的数据验证框架。您可以继承ActionFilterAttribute,它允许您在每个操作请求/响应周期前后添加自定义验证。在这里寻找一些信息 此外,我还将为客户端验证引入一个自定义jquery验证框架,以便同一表单没有多个回发,然后在动态生成下一个表单之前进行自定义服务器端验证。有关框架的信息,请查看此博客: 请记住,您不希望在数据存储和视图之间进行大量的聊天,因此我将尽可能多地将您的配置存储在经过深思熟虑的缓存实现中
我希望这会有所帮助。是的,管理员可能会根据每个角色对其进行更改。我发现:我有一种感觉,这正是我想要的。我需要研究一下。是的,一个管理员可能会改变他们每个角色。我发现:我有一种感觉,这正是我想要的。我需要研究一下。