问题标签 [validationattribute]

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.

0 投票
2 回答
692 浏览

c# - ASP.NET WEB API 2 - ModelBinding 每个请求触发两次

我有一个自定义验证属性,当我通过 POST 向服务器发出请求时,会在该属性上触发 IsValid 方法两次。

它导致返回的错误消息被重复。

我已经使用 Fiddler 检查了该请求仅被触发一次,因此情况是 1 个请求与模型绑定触发两次。

0 投票
1 回答
568 浏览

asp.net-web-api2 - Autofac 注入到 WebApi 和 OWIN 上的 ValidationAttribute

SO上有一些关于允许使用 ValidationAttribute (Asp.Net MVC3: Set custom IServiceProvider in ValidationContext so validators can resolve services)的解决方法的帖子,但我使用的是 OWIN 和 WebApi,所以我不确定如果这是可能的?

所有其他依赖注入工作正常。

DependencyResolver 没有填充到 OWIN 中,我记得读过 OWIN 如何处理验证请求的注入的差异。有谁知道 Autofac、OWIN、WebApi 和 ValidationAttribute 是否可行?而且,有具体的例子吗?

0 投票
1 回答
232 浏览

jquery - ASP.Net MVC:不同类型的条件验证服务器端和客户端

我处于必须实现位有线条件验证服务器端和客户端的情况。故事如下

a) 假设我有一个下拉菜单

b) 两个复选框,

c) 一个单选按钮列表

d) 一个复选框列表

e) 几个文本框和

f) 保存按钮

1)我的要求是当用户从下拉列表中选择一个数据并提交表单时,将显示除两个复选框之外的所有控件的验证消息。

2)当用户从下拉列表中选择一个数据并选择2个复选框之一并提交表单时,将显示除复选框列表之外的所有控件的验证消息。

我知道要求有点连线,但我必须做类似的事情。所以请给我一些建议,比如如何通过自定义验证在 mvc 中解决它。

如何使用ValidationAttribute and IClientValidatable interface在客户端和服务器端实现此验证。

谢谢

0 投票
0 回答
590 浏览

asp.net-mvc - ASP.Net MVC 自定义客户端验证未触发

我有以下未触发的 jquery 不显眼的代码。

但是上面的代码假设我在按下按钮提交表单时会显示警报。

这是我的完整代码

模型和视图模型

自定义服务器端验证

我的查看代码

0 投票
1 回答
873 浏览

c# - 通过验证属性添加自定义html属性

在 mvc5 中,每当您使用[MaxLength(10)]属性时,它都会生成以下 html 属性:

这很好也很有用,但我想做的只是防止用户在达到最大长度后无法打字。为此,我可以使用 html 属性maxlength 现在,我想弄清楚的是如何在没有前缀的情况下将自定义属性注入 html 字段data-val-

我尝试这样做,IClientValidatable但这会生成 data-val- 前缀。这可能吗?

0 投票
1 回答
1527 浏览

c# - Custom validation attribute does not work when editing a record

I have an entity called Doctor, in the create doctor form I added custom validation logic as follows:

and then in the Doctor model class:

and it works as expected when creating doctors but it also shows up in the edit form of Doctor, I know one way to remedy this is to use a viewmodel in the create form and do the validation there but that would require alot of debugging on my part as I've written alot of code depending on it being passed a Doctor model, so how do I fix that ?

0 投票
1 回答
165 浏览

c# - MVC5 ModelClientValidationRegexRule 总是失败

在我的自定义验证属性中,我有以下内容:

假设只接受字母、数字和空格。现在在 HTML 方面,这是生成的内容:

当我在字段中输入时,它总是被激活,无论我输入什么,我都会看到错误消息。我的正则表达式是错误的还是这里有其他东西在起作用?从我在网上阅读的内容来看,我的正则表达式似乎是正确的

0 投票
1 回答
51 浏览

c# - pass value to attribute based on received value

Im using C# 4.5 web api type project.

When receiving HttpPost requests from clients i want to validate the request fields. The issue is that the input validation is depended on the input itself, or to be more specific, depends on provided enum.

Assuming I have the following class:

And also I wrote 2 validatorAttributes:

Problem is that when I try call [myEnumCheckName(myEnum) it says:

Cannot access static property myEnum in static context.

Is there anyway to access the instance/current context field values?

Thanks.

CLARIFICATION

I want to validate the Name and Email properties, thats the general idea. Now, I dont mind if Name would be null if the Filter value will be ByEmail and vice-versa. this way, I dont have to write the same method that handles the request twice.

0 投票
0 回答
1279 浏览

c# - 自定义验证属性 - IsValid() 参数为空

我正在使用 Simon Ince 的 RequiredIf 自定义验证属性实现。在大多数情况下,它一直在工作,但是,我遇到了一种不起作用的情况,我似乎无法弄清楚为什么。

这是模型的相关部分:

在 RequiredIfAttribute 类中,我们必须重写 IsValid() 方法:

您会注意到模型中相关的两个属性都是IEnumerable<SelectedListItem>下拉菜单使用的类型。要求是当用户从“检索方法”下拉列表中选择特定值时,表单现在必须要求从“复制服务”下拉列表中选择一个值。我遇到的问题是,当IsValid()在属性上调用时RequiredIf,value 参数为 null,即使在 Copy Service 下拉列表中选择了一个值也是如此。因此,即使选择了一个值,复制服务也会被标记为必需。对于如何解决这个问题,有任何的建议吗?

0 投票
0 回答
755 浏览

asp.net - ASP.NET MVC 中服务器端的自定义远程验证属性抛出错误

我正在开发一个 ASP.NET MVC Web 应用程序。在我的项目中,我正在对我的视图模型类使用数据注释进行远程验证。我知道默认远程属性不支持服务器验证。我可以在操作方法中再次验证它。但我不想这样做违反了关注点分离。所以我尝试创建自定义服务器客户端远程验证属性。我在网上找到了一个代码并使用了它。但是当发生服务器验证时它给了我错误。

这是我的自定义远程验证属性:

这是我的模型:

我试过这个也添加区域名称:

这是我的远程验证操作方法:

但是当我运行代码创建时,如果名称已经被使用,客户端验证工作正常。但是,当我使用尚不存在的不同名称创建时,它会在服务器端给我错误。

这些是屏幕截图错误:

在此处输入图像描述

在此处输入图像描述

为什么会抛出这个错误?我的控制器在创建的新区域中。这是在处理那个吗?