asp.net-mvc – ASP.NET MVC验证的唯一性
发布时间:2020-12-15 19:44:25 所属栏目:asp.Net 来源:网络整理
导读:Rails具有非常方便的唯一性验证. ASP.NET MVC没有. 我需要确保用户输入的电子邮件地址尚未被任何人注册. 我只能看到一种进行这种验证的方法:在UniqueAttribute类中创建一个新的数据上下文对象. 但是我担心浪费一个新的数据上下文对象的记忆只是一个验证是危
Rails具有非常方便的唯一性验证.
ASP.NET MVC没有. 我需要确保用户输入的电子邮件地址尚未被任何人注册. 我只能看到一种进行这种验证的方法:在UniqueAttribute类中创建一个新的数据上下文对象. 但是我担心浪费一个新的数据上下文对象的记忆只是一个验证是危险的. 我错了吗?有没有更好的方法呢? 更新 这是我到目前为止 public class UniqueEmailAttribute : ValidationAttribute { public override bool IsValid(object value) { DataContext db = new DataContext(); var userWithTheSameEmail = db.Users.SingleOrDefault( u => u.Email == (string)value); return userWithTheSameEmail == null; } } // Usage [UniqueEmail(ErrorMessage="This e-mail is already registered")] public string Email { get; set; } 有两个问题. 只要有一个UniqueAttribute类就可以了,而不是用于电子邮件,用户名等的类别.我该怎么做? 解 所以最后我在表上创建了一个唯一的约束,现在我只需要拦截Users库中的SqlException.工作很好,可能比在整个表中搜索同一个节点效率更高.谢谢! 解决方法
这样做的一个愚蠢的方法是创建一个验证属性,该属性将查询数据库的电子邮件地址.这肯定会增加延迟.
一个替代方法是在表上创建一个唯一的约束并拦截SqlException. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何将母版页添加到已创建的webform中?
- asp.net-mvc-3 – 如何在MVC3 / 4中的Html.BeginForm()中添
- asp.net-mvc – 如何在ASP.NET MVC中测试动作过滤器?
- ASP.NET的会员系统是否足够安全?
- asp.net-mvc – 如何使用MVC调用JQuery UI模式(CRUD)
- asp.net-mvc – Asp.net MVC 3路由区域失败
- asp.net-mvc – 修改后ASP.NET包缓存不清除
- asp.net-mvc-3 – MVC3 AllowHtml属性的问题
- asp.net-mvc – ASP.NET MVC:多视图文件夹和_ViewStart.cs
- asp.net-mvc – 在ASP.NET MVC 3中的子文件夹中添加视图
推荐文章
站长推荐
热点阅读