asp.net-mvc – 属性级验证错误阻碍了类级验证的验证
|
Bounty获奖后更新 一个新的解决方案正在解决这个问题.请参考ASP.NET MVC 3 Preview 1:http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx 查看模型验证改进部分,您将在其中看到我的问题的解决方案. 原帖 参考我之前的How to validate two properties with ASP.NET MVC 2帖子,我问我如何比较模型验证的两个属性. 我确实觉得这个答案很有用,但我遇到了一个完全不同的问题: 问题:如果属性级ValidationAttribute包含错误,则不验证类级别ValidationAttributes. 请考虑以下事项: [EqualTo("Email","EmailConfirm",ErrorMessage = "E-mailadresserne skal vre ens")]
[EqualTo("Password","PasswordConfirm",ErrorMessage = "Adgangskoderne skal vre ens")]
[Bind(Exclude="UserId")]
public class EditSiteUser
{
[Required(ErrorMessage="Du skal bekrfte adgangskode")]
public string PasswordConfirm { get; set; }
[Required(ErrorMessage="Du skal bekrfte e-mailadressen")]
[Email(ErrorMessage="Ugyldig e-mailadresse")]
public string EmailConfirm { get; set; }
public int UserId { get; set; }
[Required(ErrorMessage = "Du skal indtaste et brugernavn")]
public string Username { get; set; }
[Required(ErrorMessage = "Du skal indtaste en adgangskode")]
public string Password { get; set; }
[Required(ErrorMessage = "Du skal indtaste en e-mailadresse")]
[Email(ErrorMessage = "Ugyldig e-mailadresse")]
public string Email { get; set; }
}
在这里,我有两个类级别的attibutes验证EmailConfirm和PasswordConfirm. 如果像Username这样的字段为空,从而产生错误,则永远不会验证两个EqualTo属性. 有没有人有建议克服这个问题? 编辑:如果您需要有关此问题的更多信息,请在评论中提问,我将非常乐意为您提供所需的任何其他信息. 问题: 问:“如果属性级别检查失败,为什么对类级别检查进行验证很重要?”. 答:“因为这是表单的一部分,用户将信息输入到通过AJAX回发的表单中.当表单返回时,它应显示所有当前问题.” 问:“你在这个类上放置的EqualTo属性到底是什么?它是一个自定义验证属性吗?如果是,它是如何工作的?它做了什么?” 答:EqualTo是一个类级ValidationAttribute,它比较类实例的两个Properties的值.查找“PropertiesMustMatchAttribute”以获得类似的实现. 解决方法这不受支持.如果任何属性级别验证失败,则不执行类级别验证.我建议你看一下 MVC Foolproof Validation.它扩展了MVC验证,增加了对偶然属性验证的支持.我认为这可以解决这个特殊情况的问题.项目网站声明它不能与MVC2 RC一起使用,因此您必须下载源代码并让它自己运行/采用他们的想法. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何在web.config的MailSetting部分设置友好的电
- asp.net-mvc – MVC的实际应用||什么时候使用,还是不使用MV
- asp.net – 在Selectedindexchanged事件中选择下拉列表值
- asp.net – 在Application_BeginRequest中设置会话变量
- ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据的传递
- asp.net-mvc-3 – 如何使用DropdownList助手正确创建MultiS
- 基于角色的启用/禁用asp.net中的控件
- asp.net – Web.Config中的Assemblies节点的目的是什么?
- asp.net – 菜单控件生成的js导致Web窗体中的Sys未定义的异
- 在ASP.Net中使用自定义RoleProvider时,如何允许多个角色查看
- ASP.NET C#5异步Web应用程序使用异步和等待
- asp.net-mvc-4 – ASP.NET MVC 4自定义权限属性
- asp.net-mvc – 如何告诉Ninject绑定到它没有引用
- asp.net-mvc – 应该在ASP.NET MVC应用程序中缓存
- asp.net-web-api – WebAPI 2属性路由启用会话状
- asp.net – IIS 7禁用“需要SSL”
- asp.net – MVC5(VS2012)Identity CreateIdentit
- asp.net – 优雅地停止fastcgi-mono-server,网站
- asp.net – 如何在VB.NET中JSON编码数组?
- asp.net 读取xml文件里面的内容,绑定到dropdown
