问题标签 [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.
image - 使用 IValidatableObject 验证上传的文件
大家好!
我在模型验证方面有点菜鸟,我一直在尝试使用 IValidatableObject 接口验证 Articles 对象和上传的文件,但没有成功。
下面这个类很好地验证了 Articles 对象,但我看不到 HttpPostedFileBase 是如何被注入以允许我对其进行验证的。这甚至可以使用这种方法实现吗?
我用来提交数据的表单包含 enctype = multipart/form-data 属性,因此它知道它的发布文件。
这是我试图验证的完整课程。这真的让我陷入困境,任何帮助将不胜感激。
validation - ASP.NET Web API 是否支持 IValidatableObject?
我有一个实现 IValidatableObject 的视图模型,并且还有几个验证属性。当我尝试在我的 ApiController 上调用操作时,只执行属性验证。ASP.NET Web API 不支持 IValidatableObject 吗?对于无法由单个属性表示的复杂验证,有什么替代方法?
编辑:在某个地方,我一定是捏造了一些东西。验证神秘地开始按预期工作。看起来默认情况下肯定支持 IValidatableObject 。
validation - IValidatableObject 通过验证,但 StringLength 无效
我有一个测试类,其中包含几个测试来检查实体是否IsValid
. 我从拥有自己的自定义验证转向使用IValidatableObject
,但我坚持使用正确的验证技术。
这是我的测试课:
这是我的实体:
正如您可以看到IsValid
通过调用IsValidForPersistance
. Validate
最终会有更多的验证。
上述测试都使用此方法通过,但下面的测试也通过但不应该通过。
在这里,我设置了我自己Phone
的无效长度字符串的值。我希望验证失败,因为StringLength
注释设置为最小和最大 10 个字符。
为什么会这样过去?
更新
自定义验证出现问题,使用更改更新了代码。除了 nemesv 关于private
在属性上没有修饰符的建议之外,Phone
它现在可以工作了。我已将所有代码更新为正常工作。
asp.net-mvc-3 - 如何在局部视图上使用 IValidatableObject
我似乎无法弄清楚如何验证将部分 ViewModel 作为子对象的 ViewModel 的部分视图片段。这是我最低级别的部分,它总是作为其他表单标签中的部分视图使用:
这是包含它的“主要”视图模型:
对于 NewCustomerWithPayment 的视图,我有这个:
并且部分视图“付款”总是在另一个 Html.Beginform 标记中呈现,它只有这个:
我的问题是我无法让“付款”视图模型上的验证工作。任何有使用 IValidatableObject 经验的人都可以在呈现为部分视图的 ViewModel 上加入并给我一个有效的验证模式吗?如果必须,我可以在没有 JavaScript 验证的情况下生活。
c# - 实现 IValidatableObject 时 ValidationContext 的目的是什么
我已经实现IValidatableObject
了好几次,但从未发现解析ValidationContext
到 Validate 方法的目的是什么——我的典型IValidatableObject
实现如下所示:
有什么我错过的东西可以用来validationContext
做吗?
编辑:我正在使用 ASP.NET MVC,这是在类中实现的——而不是在控制器中。
asp.net-mvc-3 - IValidatableObject 在 mvc 4 Web 应用程序中不起作用
所以我有一个正在注册用户和业务合作伙伴的网络应用程序。
这就是我的模型的样子
问题是:当我提交表单时,CompanyModel 中的 Validate 被调用,并且 RegistrationModel 中的 Validate 也被调用。但我也想在 UserModel 中调用 Validate...
更新:我解决了第一个问题:这些是升级后的模型:)
现在验证工作正常。我只是不知道为什么 CompanyModel 中的 Validate 执行两次???。有什么建议吗?
session - 如何从 IValidatableObject 的 Validate 方法访问 User.Identity?
我有继承自 IValidatableObject 的 ViewModel。在这个模型中,我必须进行自定义验证,它需要 Session 变量和 User.Identity。我找不到合适的方法来访问这些变量。我想到了一些关于静态类的东西,其中将是 getter 属性,但我不确定它是否有效。
asp.net-mvc - 两个检查 IValidatableObject 在一个实体中
是Project的本质,创建它需要检查是否已经存在同名实体。当编辑需要检查时,但要记住实体的新旧名称是可以匹配的。您还需要显示错误消息。为此,我使用 IValidatableObject 接口,但不知道如何告诉 Validate 方法当前正在编辑或创建对象
asp.net-mvc - @Html.BeginCollectionItem 与 IValidatableObject 和 MemberName 不匹配
在使用Steven Sanderson 的@Html.BeginCollectionItem助手时,我正在尝试使用IValidatableObject接口验证服务器端的集合项。
我想防止用户选择两个相等的项目。例如,给定用户所说的习语列表,可以回发这些值:
Validate
实现如下所示:
问题在于MemberName
传递给的 ("Idiom")与字典中的现在ValidationResult
不同,因为 Steven 的助手使用's 并且看起来像这样:MemberName
ModelState
Guid
如您所见Idiom != [Idioms[83c2c6db-0157-42f3-bf3f-f7c9e6bc0a37].Idiom
。
在最好的情况下,我必须有一种传递方式,例如[Idioms[83c2c6db-0157-42f3-bf3f-f7c9e6bc0a37].Idiom
,MemberName
但我不知道如何从 the 中获取此信息,validationContext
或者即使有可能。无论如何,这必须是动态的。
你知道有什么办法可以克服这个吗?
c# - IValidatableObject 上下文
我正在使用 IValidatableObject/Validator 来验证我的 mvc 模型。所以我有这样的东西
因此,如果我在父实例上运行验证器,我会得到类似“需要名称”的信息。
我想要的是“需要Child.Name”,因此它需要包含属性名称“Child”。我可以做到这一点,如果可以,我将如何做到这一点?