【发布时间】:2021-03-31 10:38:59
【问题描述】:
我正在处理一个 Razor Pages 表单,该表单接受一个字符串以在 SQL Server 数据库中创建一个新客户。我想让它工作,以便如果作为客户的字符串已经存在,则会出现一个提示“该客户已经存在”。只是为了保证数据完整性。
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
int customerCheck = -1; //No Customer ID is -1
try
{
using (var context = new DataWarehouseContext())
{
customerCheck = context.Customer //Tries to grab a Customer with this name
.Where(a => a.Name == Customer.name)
.Select(b => b.CustomerId)
.FirstOrDefault();
}
}
catch (Exception)
{
}
if(customerCheck == -1)
{
_context.Customer.Add(Customer);
await _context.SaveChangesAsync();
return RedirectToPage("/Customer/List");
}
else
{
return Page();
}
}
这是我目前在后端的代码。发生的情况是,当用户尝试创建新客户时,页面后端会尝试查看是否可以获取与此名称相关的客户 ID。如果可以,那么 customerCheck 的值不是 -1,因此应该打印出一些错误。
我不知道可以使用什么方法来做到这一点,所以任何帮助都会很棒!
【问题讨论】:
-
要查找的内容:AddModelError 和 ValidationSummary。那些会让你到达那里。
标签: asp.net-core razor entity-framework-core razor-pages