gpt4 book ai didi

c# - FluentValidation ModelState.IsValid 始终为真

转载 作者:行者123 更新时间:2023-12-01 09:29:34 25 4
gpt4 key购买 nike

好的,我的问题是来自 fluentValidation 的模型验证器在我的项目中不起作用,无论验证状态如何,ModelState.IsValid 始终为真,我使用的是 asp.net mvc 4、.net 4.5,提前谢谢。

全局.asax

protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();

WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
FluentValidationModelValidatorProvider.Configure();
}

登录 View 模型

using FluentValidation.Attributes;

namespace ViewModel.Cuentas
{

[Validator(typeof(LoginViewModel))]
public class LoginViewModel
{
public string UserName { get; set; }
public string Password { get; set; }
}
}

登录 View 模型验证器

using FluentValidation;
using FluentValidation.Results;
namespace ViewModel.Cuentas.Validadores
{
public class LoginViewModelValidator : AbstractValidator<LoginViewModel>
{
public LoginViewModelValidator()
{
RuleFor(x => x.UserName).NotEmpty().WithMessage("El Campo Usuario es Necesario");
RuleFor(x => x.Password).NotEmpty().WithMessage("El Campo Usuario es Necesario");
}
}
}

和我的账户控制者

   [HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginViewModel viewModel)
{
if (!ModelState.IsValid)
{
return View();
}
FormsAuthentication.SetAuthCookie(viewModel.UserName, false);
if (!String.IsNullOrEmpty(returnUrl) && returnUrl != "/")
{
return Redirect(returnUrl);
}
return RedirectToAction("Enviar", "Cartas");
}

最佳答案

您的 Validator 属性似乎有错误的类型。你有:

[Validator(typeof(LoginViewModel))]
public class LoginViewModel

类型参数应该是您的验证器类 - LoginViewModelValidator。所以它会是这样的:

[Validator(typeof(LoginViewModelValidator))]
public class LoginViewModel

关于c# - FluentValidation ModelState.IsValid 始终为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17367799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com