c# - 如何发送验证错误消息以使用 Fluent Validation 进行查看
问题描述
目前正在向我的项目添加验证,我遇到了 Fluent Validation,我像这样创建了我的验证器:
using Dealership.App.Models.CarBrand;
using FluentValidation;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace Dealership.App.FluentValidation
{
public class CarBrandValidator : AbstractValidator<CreateCarBrandViewModel>
{
public CarBrandValidator()
{
RuleFor(brand => brand.CarBrandName).NotNull()
.WithMessage("Car Brand needs to have a name");
}
}
}
正如文档所建议的那样,我在启动文件中对其进行了如下配置:
services.AddMvc()
.AddFluentValidation(fv => fv.RegisterValidatorsFromAssemblyContaining<Startup>());
现在这是我正在应用验证的控制器中的操作方法
public async Task<IActionResult> CreatePost(CreateCarBrandViewModel newBrand)
{
if(ModelState.IsValid)
{
var response = await _mediator.Send(new CreateCarBrandCommand(newBrand));
if (response)
{
this._unitOfWork.Commit();
}
return RedirectToAction("Index");
}
return RedirectToAction("Create");
}
这是我的观点:
@model Dealership.App.Models.CarBrand.CreateCarBrandViewModel
<div asp-validation-summary="ModelOnly"></div>
<form asp-action="CreatePost" method="POST">
<div class="form-group">
<label for="BrandName">Brand Name</label>
<input asp-for="CarBrandName" class="form-control col-4" id="BrandName" placeholder="Enter Car Brand name" />
<span asp-validation-for="CarBrandName"></span>
</div>
<button type="submit" class="btn btn-primary">Create</button>
</form>
事情是这样的,我的验证工作 50%,我的意思是如果我在验证器中指定的字段为空,验证工作在方面,它将再次重定向回同一页面,一切都很好。但是我想显示我在验证器中设置的错误消息,我已经尝试了很多东西并阅读了很多东西,如果有人可以提供帮助,那就太棒了
提前致谢
解决方案
好吧,我找到了答案,它是一个简单的 RedirecToAction,因为当验证失败时我需要返回创建视图。最初我有return RedirectToAction({view-name})
,我需要做
return View({view-name})
。
推荐阅读
- django - 如何将 datepicker 和 timepicker 添加到 Django forms.SplitDateTimeField?
- android - 调用 startActivityForResult 后检测进程死亡
- database - 聚合。我想计算 mongo 中的记录,然后我想将该计数乘以不同集合中的字段
- reactjs - 在 API 响应中映射数组值以进行条件检查
- python - 模块导入类函数
- android - 在没有生命周期所有者的情况下使用 LiveData
- .htaccess - htaccess 路由与一个域和几个文件夹
- blockchain - 同一笔交易的不同gas量
- c# - 如何用指针作为参数在 C# 中包装 C++ DLL?
- c# - 在 IHostedService 中应该如何使用取消令牌?