asp.net - 如何使用数据库中的现有数据验证表单中输入的数据
问题描述
如何将表格中输入的数据与数据库中的数据进行比较?
我在此表中有 InternalContacts 表我有两个字段 ProductCodeFrom 和 ProductCodeTo 将产品与内部联系人关联,在创建新记录时我想验证新范围是否与现有范围不重叠
我有这个代码来获取所有联系人
var getallinternalContacts = await InternalContactsService.GetInternalContacts();
我认为这两个领域
<div class="col-sm-6">
<h5>Product Code From</h5>
<input asp-for="ProductCodeFrom " type="text" class="form-control w-75" id="ProductCodeFrom " maxlength="50" />
</div>
<div class="col-sm-6">
<h5>"Product Code Thru"</h5>
<input asp-for="ProductCodeTo" type="text" class="form-control w-75" id="ProductCodeTo" maxlength="50" />
</div>
在我用来ModelState
验证其他人的动作类中,如下所示,我想添加上面的验证验证
if (!ModelState.IsValid || (internalContactToCreate.ProductCodeRangeFrom > internalContactToCreate.ProductCodeRangeThru))
{
if (internalContactToCreate.ProductCodeRangeFrom > internalContactToCreate.ProductCodeRangeThru)
ModelState.AddModelError("ProductCodeRangeFrom", "From must be less than To value.");
return View();
}
解决方案
您可以考虑使用FluentValidation来验证您的绑定模型。
假设你有一个ProductCodeBindingModel
:
public ProductCodeBindingModel
{
public int ProductCodeFrom { get; set; }
public int ProductCodeTo { get; set; }
}
然后,创建一个验证器并将LessThan
规则添加到ProductCodeTo
:
public class ProductCodeBindingModelValidator : AbstractValidator<ProductCodeBindingModel>
{
public ProductCodeBindingModelValidator() {
// Make sure that ProductCodeFrom < ProductCodeTo
RuleFor(x => x.ProductCodeFrom)
.LessThan(x => x.ProductCodeTo);
.WithMessage('From must be less than To value.');
}
}
您可以在此处查看有关该LessThan
规则的更多信息。
推荐阅读
- solr - 如何配置 solr 以确保单词位置
- python - TensorFlow 中的类型转换错误
- javascript - 如何在文本区域中创建更新功能?
- django - 使用 HTTP 请求触发 django rest 框架 update() 函数
- c# - 在程序的另一个实例上显示表单
- postgresql - MacOS Postgres 10 无法读取 csv 文件
- javascript - 如何在 Angular 中实现多线程?
- html - 如何使用引导程序 3.3.7 在悬停时放大/弹出引导卡
- error-handling - FEC 和修复丢弃/插入位
- google-chrome-app - Chromebase Kiosk 应用程序 - 无效的应用程序