c# - ModelState.AddModelError 这里我给出的错误消息没有显示
问题描述
ModelState.AddModelError
将相同的用户名发布到数据库时不起作用
在这里,如果用户名不匹配,它将在数据库中创建一个新用户
public ActionResult Signup(User user)
{
using (var context = new dbTournamentEntities())
{
bool check = context.Users.Any(m => m.UserName == user.UserName);
if (check)
{
ModelState.AddModelError("", "User Already Exist Try Different User Name");
}
else
{
var hashpass = HashPassword(user.Password);
user.Password = hashpass;
context.Users.Add(user);
context.SaveChanges();
}
}
return RedirectToAction("Login");
}
解决方案
如果变量检查具有错误值,则 ModelState.AddModelError 不起作用的唯一原因。
您可以寻找两种可能的情况
- 如果您的数据库上下文在用户中没有价值。
如果您的数据库上下文中存在同名用户,那么这是区分大小写的问题,请尝试同时设置大写和小写,然后检查是否相等。
bool check = context.Users.Any(m => m.UserName.ToUpper() == user.UserName.ToUpper());
推荐阅读
- javascript - 在我的 laravel 应用程序中集成条带信用卡订阅,但 $request 不包含 paymentmethod
- python - 如何从句子中分离词性标签并将它们分成两个单独的列,一列包含原始句子,另一列仅包含 POS 标签
- java - 如何使用 xpath 将 XML-MvcResult 中的值保存到变量中
- python-3.7 - 当变量达到 11 时如何停止向变量添加 1?
- html - 如何修复高度损坏的引导程序面包屑项目?
- bash - S3 对象的组织和生命周期管理
- node.js - OPC UA 服务器上的用户名/密码身份?
- java - 有没有办法使用 Math.random 而不是 import java.util.Random 但保持相同的输出
- sql-server - SQL Server 触发器(我需要从任何给定节点移动分层树结构)
- orocrm - 登录后卡在加载页面