问题标签 [ivalidatableobject]

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 投票
0 回答
166 浏览

image - 使用 IValidatableObject 验证上传的文件


大家好!

我在模型验证方面有点菜鸟,我一直在尝试使用 IValidatableObject 接口验证 Articles 对象和上传的文件,但没有成功。

下面这个类很好地验证了 Articles 对象,但我看不到 HttpPostedFileBase 是如何被注入以允许我对其进行验证的。这甚至可以使用这种方法实现吗?

我用来提交数据的表单包含 enctype = multipart/form-data 属性,因此它知道它的发布文件。

这是我试图验证的完整课程。这真的让我陷入困境,任何帮助将不胜感激。

0 投票
3 回答
2901 浏览

validation - ASP.NET Web API 是否支持 IValidatableObject?

我有一个实现 IValidatableObject 的视图模型,并且还有几个验证属性。当我尝试在我的 ApiController 上调用操作时,只执行属性验证。ASP.NET Web API 不支持 IValidatableObject 吗?对于无法由单个属性表示的复杂验证,有什么替代方法?

编辑:在某个地方,我一定是捏造了一些东西。验证神秘地开始按预期工作。看起来默认情况下肯定支持 IValidatableObject 。

0 投票
1 回答
2083 浏览

validation - IValidatableObject 通过验证,但 StringLength 无效

我有一个测试类,其中包含几个测试来检查实体是否IsValid. 我从拥有自己的自定义验证转向使用IValidatableObject,但我坚持使用正确的验证技术。

这是我的测试课:

这是我的实体:

正如您可以看到IsValid通过调用IsValidForPersistance. Validate最终会有更多的验证。

上述测试都使用此方法通过,但下面的测试也通过但不应该通过。

在这里,我设置了我自己Phone的无效长度字符串的值。我希望验证失败,因为StringLength注释设置为最小和最大 10 个字符。

为什么会这样过去?

更新 自定义验证出现问题,使用更改更新了代码。除了 nemesv 关于private在属性上没有修饰符的建议之外,Phone它现在可以工作了。我已将所有代码更新为正常工作。

0 投票
3 回答
1503 浏览

asp.net-mvc-3 - 如何在局部视图上使用 IValidatableObject

我似乎无法弄清楚如何验证将部分 ViewModel 作为子对象的 ViewModel 的部分视图片段。这是我最低级别的部分,它总是作为其他表单标签中的部分视图使用:

这是包含它的“主要”视图模型:

对于 NewCustomerWithPayment 的视图,我有这个:

并且部分视图“付款”总是在另一个 Html.Beginform 标记中呈现,它只有这个:

我的问题是我无法让“付款”视图模型上的验证工作。任何有使用 IValidatableObject 经验的人都可以在呈现为部分视图的 ViewModel 上加入并给我一个有效的验证模式吗?如果必须,我可以在没有 JavaScript 验证的情况下生活。

0 投票
2 回答
8212 浏览

c# - 实现 IValidatableObject 时 ValidationContext 的目的是什么

我已经实现IValidatableObject了好几次,但从未发现解析ValidationContext到 Validate 方法的目的是什么——我的典型IValidatableObject实现如下所示:

有什么我错过的东西可以用来validationContext做吗?

编辑:我正在使用 ASP.NET MVC,这是在类中实现的——而不是在控制器中。

0 投票
1 回答
4695 浏览

asp.net-mvc-3 - IValidatableObject 在 mvc 4 Web 应用程序中不起作用

所以我有一个正在注册用户和业务合作伙伴的网络应用程序。

这就是我的模型的样子

问题是:当我提交表单时,CompanyModel 中的 Validate 被调用,并且 RegistrationModel 中的 Validate 也被调用。但我也想在 UserModel 中调用 Validate...

更新:我解决了第一个问题:这些是升级后的模型:)

现在验证工作正常。我只是不知道为什么 CompanyModel 中的 Validate 执行两次???。有什么建议吗?

0 投票
1 回答
408 浏览

session - 如何从 IValidatableObject 的 Validate 方法访问 User.Identity?

我有继承自 IValidatableObject 的 ViewModel。在这个模型中,我必须进行自定义验证,它需要 Session 变量和 User.Identity。我找不到合适的方法来访问这些变量。我想到了一些关于静态类的东西,其中将是 getter 属性,但我不确定它是否有效。

0 投票
3 回答
388 浏览

asp.net-mvc - 两个检查 IValidatableObject 在一个实体中

是Project的本质,创建它需要检查是否已经存在同名实体。当编辑需要检查时,但要记住实体的新旧名称是可以匹配的。您还需要显示错误消息。为此,我使用 IValidatableObject 接口,但不知道如何告诉 Validate 方法当前正在编辑或创建对象

0 投票
1 回答
1251 浏览

asp.net-mvc - @Html.BeginCollectionItem 与 IValidatableObject 和 MemberName 不匹配

在使用Steven Sanderson 的@Html.BeginCollectionItem助手时,我正在尝试使用IValidatableObject接口验证服务器端的集合项。

我想防止用户选择两个相等的项目。例如,给定用户所说的习语列表,可以回发这些值:

Validate实现如下所示:

问题在于MemberName传递给的 ("Idiom")与字典中的现在ValidationResult不同,因为 Steven 的助手使用's 并且看起来像这样:MemberNameModelStateGuid

如您所见Idiom != [Idioms[83c2c6db-0157-42f3-bf3f-f7c9e6bc0a37].Idiom

在最好的情况下,我必须有一种传递方式,例如[Idioms[83c2c6db-0157-42f3-bf3f-f7c9e6bc0a37].IdiomMemberName但我不知道如何从 the 中获取此信息,validationContext或者即使有可能。无论如何,这必须是动态的。

你知道有什么办法可以克服这个吗?

0 投票
1 回答
313 浏览

c# - IValidatableObject 上下文

我正在使用 IValidatableObject/Validator 来验证我的 mvc 模型。所以我有这样的东西

因此,如果我在父实例上运行验证器,我会得到类似“需要名称”的信息。

我想要的是“需要Child.Name”,因此它需要包含属性名称“Child”。我可以做到这一点,如果可以,我将如何做到这一点?