asp.net-mvc – 流利的验证不适用于长度
发布时间:2020-12-16 03:57:34 所属栏目:asp.Net 来源:网络整理
导读:我试图让Fluent Validation在我的客户端验证上正常工作.我正在使用ASP.NET MVC 3. 我有一个必需的标题,它必须在1到100个字符之间.因此,当我输入标题时,会显示一条错误消息,该消息不在我的规则集中.这是我的规则集: RuleFor(x = x.Title) .NotEmpty() .WithM
我试图让Fluent Validation在我的客户端验证上正常工作.我正在使用ASP.NET MVC 3.
我有一个必需的标题,它必须在1到100个字符之间.因此,当我输入标题时,会显示一条错误消息,该消息不在我的规则集中.这是我的规则集: RuleFor(x => x.Title) .NotEmpty() .WithMessage("Title is required") .Length(1,100) .WithMessage("Title must be less than or equal to 100 characters"); 以下是显示的错误消息: Please enter a value less than or equal to 100 我不确定我做错了什么.这是我的global.asax: // FluentValidation DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false; ModelValidatorProviders.Providers.Clear(); ModelValidatorProviders.Providers.Add( new FluentValidationModelValidatorProvider(new AttributedValidatorFactory())); ModelMetadataProviders.Current = new FluentValidationModelMetadataProvider( new AttributedValidatorFactory()); 解决方法
对我来说很好.以下是步骤:
>使用默认的Visual Studio模板创建一个新的ASP.NET MVC 3 RTM项目 添加模型: [Validator(typeof(MyViewModelValidator))] public class MyViewModel { public string Title { get; set; } } 和相应的验证器: public class MyViewModelValidator : AbstractValidator<MyViewModel> { public MyViewModelValidator() { RuleFor(x => x.Title) .NotEmpty() .WithMessage("Title is required") .Length(1,5) .WithMessage("Title must be less than or equal to 5 characters"); } } 添加到Application_Start: DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false; ModelValidatorProviders.Providers.Clear(); ModelValidatorProviders.Providers.Add( new FluentValidationModelValidatorProvider(new AttributedValidatorFactory())); ModelMetadataProviders.Current = new FluentValidationModelMetadataProvider( new AttributedValidatorFactory()); 添加控制器: public class HomeController : Controller { public ActionResult Index() { return View(new MyViewModel()); } [HttpPost] public ActionResult Index(MyViewModel model) { return View(model); } } 和相应的观点: @model SomeApp.Models.MyViewModel @{ ViewBag.Title = "Home Page"; } <script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> @using (Html.BeginForm()) { @Html.TextBoxFor(x => x.Title) @Html.ValidationMessageFor(x => x.Title) <input type="submit" value="OK" /> } 现在尝试提交表单,留下标题输入empty =>客户端验证启动并显示标题是必需的消息.现在开始键入一些text =>错误消息消失.在输入框中键入超过5个字符后,标题必须小于或等于5个字符,才会显示验证消息.所以一切似乎都按预期工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 循环访问复选框列表
- asp.net – 出于安全目的,CAPTCHA是什么?
- asp.net-mvc – ASP.NET MVC中的WebApi [FromUri]是什么?
- 从ASP.NET MVC Partial View中调用JavaScript
- asp.net – 使用SSL无法找到wcf服务的资源
- Asp.net core利用IIS在windows上进行托管步骤详解
- asp.net – 如何允许匿名用户访问虚拟目录
- asp.net – 返回按钮刷新页面
- Asp.net复选框和html数据属性
- asp.net-web-api – Ninject 3 – BeginBlock()是否覆盖了a
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC授权和使用模型类的权
- asp.net-mvc – 客户端验证未显示消息
- asp.net-mvc – 发现MVC项目中是否使用views / p
- asp.net-mvc – SessionSecurityTokenHandler尝试
- asp.net-mvc – 我可以创建一个带有MVC3助手的选
- asp.net-mvc – 如何在URL中没有控制器名称的单个
- asp.net-core – ASP.NET 5和MVC6中的project.js
- .net-core – 存储Azure Vault客户端ID和客户端密
- asp.net:如何在button onclick上使用eventargs进
- 在ASP.Net MVC的视图中使用Silverlight – 一个坏
热点阅读