问题标签 [model-validation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - 在自定义 ModelValidatorProvider 中使用 RegularExpressionAttribute
我有一个ModelValidatorProvider
在 ASP.NET MVC 应用程序中使用的自定义实现。但我目前在任何产生RegularExpressionAttributeAdapter
. 错误是Either ErrorMessageString or ErrorMessageResourceName must be set, but not both.
现在我的代码没有设置资源名称但确实设置了一条消息。
我尝试将两者都设置ErrorMessageResourceName
为 null 并将其设置ErrorMessageResourceType
为 null,但它没有帮助。如果我没有设置ErrorMessage
异常,那么我就会失去用户对验证的反馈。
现在,我应该注意到这曾经可以工作,但我最近升级了应用程序以使用 MVC4 而不是 MVC3,我很好奇这是 MVC4 独有的还是其他东西?
asp.net - MVC3:非字符串的 EditorForModel()
我有一个模型,我想在表单中使用EditorForModel()
. 对于所有非字符串数据类型(如 bool、DateTime 等),即使我没有设置[Required}
数据注释,创建的表单也会使字段成为必填字段。如何设置Object.cshtml
文件以识别这不是必填字段?
asp.net-mvc-3 - 级联下拉列表在发布后丢失选择的项目
我有一个 MVC3 razor 项目,我正在尝试使用多个可重用元素来构建它。我有很多模型类,如下所示
我在此示例中省略了其他字段
MyAccountsDropDown.cshtml 看起来像这样:
我的控制器方法如下所示:
所以当视图打开时(作为一个 jQuery 对话框),我已经设置好了表单。如果我选择一个 orgName,它会从数据库中提取 accountName(级联)。现在,由于我正在使用模型验证,当我没有填写所有必填字段并按提交时,它会向我显示验证消息。它还显示了我在提交之前已经输入的字段的预填充值。删除的是级联下拉值。因此它会继续显示选定的 orgName,但 accountName 下拉列表会丢失数据库中先前填充的值。
如何在单击提交之前维护已拉取的 SelectItems
c# - 使用自定义 DataAnnotationsModelValidatorProvider 进行服务器端验证
我已经设置了一个自定义提供程序,以允许从数据存储而不是静态代码中设置验证属性。在我的 .NET MVC 4 项目中非常适合客户端验证,但我无法让服务器端验证正常工作。
CustomModelValidatorProvider .cs:
在我的 Global.asax.cs 我有:
在 Web API 方法中,我有:
在这里,valid 总是正确的。即使 Jquery 客户端验证显示错误。在服务器端,我的自定义提供程序未用于应用数据注释。当我在 GetValidators() 中设置断点时,它会在创建视图并正确显示客户端验证器时调用,但在模型绑定到控制器时不会再次调用。
我错过了一步吗?任何帮助是极大的赞赏!
更新
自定义验证器在对象发布到 Controller 时正常工作,但在发布到 ApiController 时不会被触发。
asp.net-mvc-3 - 仅适用于新对象 ASP.NET MVC 所需的 ModelValidation
我从昨天开始就有这个问题。在我的用户模型中,我有一个名为“ ConfirmPassword ”的[NotMapped]。我没有将它保存在数据库中,但我总是在我的 Create 表单中使用它来验证新用户的数据输入。
从那以后,没关系。问题出在我的 [HttpPost] 编辑操作上。我应该能够在没有输入的情况下编辑一些用户的数据并确认密码。如果我想更改密码,我同时使用 Password 和 ConfirmPassword 作为确认旧密码并通知新密码的一种方式。但是,如果我不这样做,我会将它们留空。
我已经使用下面的代码来传递 ModelState.IsValid() 条件并且它起作用了:
但是,就在 db.SaveChanges() 之前,考虑到 User 用户视图模型,它的两个属性都是空的,我得到了:
问题是:当我想更新对象时,如何跳过所需的模型验证?
我已经阅读了自定义 ModelValidations 以及扩展ValidationAttribute和 DataAnnotationsModelValidator的类,但我做得不对。
任何的想法?我如何创建一个自定义模型验证来检查 UserId 属性是否为空。这是检查我是否处于创建或编辑操作的好方法。
谢谢,保罗
asp.net-mvc-3 - MVC3 中的默认属性值
我在 MVC3 中有 2 个包含 POCO 实体的类
我想JoinDate
用 Project设置 TeamMember 的默认值StartDate
。谁能把我拉出来
asp.net-mvc - MVC 日期时间验证失败
我发现了很多类似的问题,但不是一个很好的干净的解决方案。我看到很多自定义代码可以让它工作,但这是为什么呢?这不应该从一开始就起作用吗?
我认为奇怪的是,它在 IE9 中有效,但在 Firefox 和 Chrome 中却失败了。每次在 Firefox 或 Chrome 中尝试时,我都会收到消息“生日字段必须是日期”。
当我在一个新的 MVC 4 RTM 项目中尝试下面的代码时,我无法让它工作。我在所有浏览器中都看到 DateTime.Now 默认为 dd-MM-yyyy(荷兰),但我无法在 Firefox 和 Chrome 中提交它。
全球化标签未在 web.config 中设置,因此它必须使用默认值。我来自荷兰,所以我猜它应该得到客户文化。
标记
asp.net-mvc-3 - 重复的自定义验证不起作用
我想为重复的用户名和电子邮件创建自定义验证。型号是这样的:
所有验证都有效,但我的自定义验证 - ValidateDuplicateUsername和ValidateDuplicateEmail不起作用。这里有什么问题?
asp.net-mvc-3 - 验证错误消息未显示 MVC4
我正在使用 MVC4。
验证失败,但未显示验证错误消息。
这是我的模型。
控制器。
视图是
如果有更好的验证方法,也请建议我。
.net - MVC3 客户端对集合进行验证,至少一个元素具有值
我的视图模型
我的模特
在我看来,我正在ViewModel.Collection
使用编辑器模板进行渲染
现在,我想要的是确保使用客户端验证至少选中一个复选框。
我可以通过在属性上设置自定义验证属性Item.Selected
并通过注册新适配器来实现这一点$.validator.unobtrusive.adapters.add()
但我觉得属性应该在ViewModel.Collection
属性上,因为在服务器端我已经在验证集合的项目之一是否Selected = True
使用了这个自定义验证:
它使用反射SelectOnePropertyAttribute
来查找要检查的属性:
这就是客户端验证