问题标签 [validationsummary]
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.
asp.net - 禁用 JSON 重新排序
我正在创建一些 JSON 数据以通过 ajax 调用进行验证。
这是我构建的 JSON :
这是获得的:
如您所见,我的密钥按字母顺序重新排序,这是我不想要的。
这会导致错误以第二个顺序返回到页面,但我需要它们在第一个顺序。我希望我的错误摘要 (Html.ValidationSummary) 跟随页面上的错误(第一个错误 = 第一个错误字段)。
有什么办法可以保留我原来的订单吗?
或者以某种方式绕过这个?
编辑
ajax 调用返回(错误)
不可能按原样重新排序退货。
asp.net - ASP.NET 自定义验证器和验证摘要未出现错误消息,但仍在网格视图中触发验证
我遇到了一个问题,我在 gridview 的每一行上都有一个自定义验证器,并且在 gridview 所在的面板底部有一个摘要。
自定义验证器在应该时触发,我设置 args.IsValid=false 并分配适当的错误消息,但在我的屏幕上我看不到自定义验证器的文本或摘要中的 errorMessage。事实上,我根本看不到我的摘要。
我已经看过了,但我不明白为什么会发生这种情况,因为我在其他地方使用了几乎相同的设置并且效果很好。
标记:
...
服务器验证代码:
...
c# - 使用 TryUpdateModel 绑定时,MVC ValidationSummary 会忽略模型级别的验证错误
这是一个与此处已发布的问题非常相似的问题:ASP.NET MVC:在 TryUpdateModel 中设置的验证消息未显示 ValidationSummary
我不确定那个旧主题是否参考了早期版本的 MVC,但在 MVC3 中,我遇到了一些类似的奇怪行为。
我有一个名为 Trade 的模型类。这继承自 IValidatableObject,因此实现了一个 Validate 方法。在此我们对整个模型进行了一些验证(与强制验证属性的数据注释相反)。验证如下:
我们有一个视图模型来帮助显示交易。这包含通过 TradeModel 属性对贸易模型的引用。所以基本上视图模型是一个贸易模型,加上一些额外的信息,用于下拉列表的人口,如交易对手等。
我们的 CSHTML 类包含一个 ValidationSummary,以“true”作为参数,这意味着它只会显示模型错误。
如果我实现我的 HttpPost 控制器方法来创建一个新的 Trade 如下......
...当我使用 StartDate > EndDate 输入交易时,我发现 TryUpdateModel 返回 false 并且用户被引导回他们的交易。这似乎合乎逻辑。不幸的是 ValidationSummary 没有显示任何错误消息。
如果我在 Create 方法中放置一个断点并调查 ModelState,我可以看到字典中有一条错误消息。它是针对“TradeModel”的键,而不是针对任何属性。同样,这似乎是合乎逻辑的。
关于为什么会这样的一个理论是 ValidationSummary 假定针对非 String.Empty 键的任何验证错误都必须是属性验证错误,它忽略了我们的验证错误,因为我们有一个包含对模型的引用的视图模型,因此导致 Key 为“TradeModel”。
将这个理论从水中吹出来的是:如果我重写控制器的 Create 函数如下......
...因此依赖MVC“自动”执行绑定,并重新运行相同的测试场景,用户会看到预期的错误消息!
如果我添加断点并查看 ModelState,我会看到与以前相同的键相同的错误消息,但这次 ValidationSummary 将它们拾取!
如果我按如下方式修改验证,那么它可以与以任何一种方式编写的控制器的 Create 函数一起使用:
很明显,这只是模型级别验证错误的问题。
对此的任何帮助将不胜感激!有一些原因(我现在不会讨论)为什么我们需要手动创建视图模型的实例并使用 TryUpdateModel 调用绑定。
提前致谢!
更新
看来,当被告知排除属性错误时,ValidationSummary 的理论仅显示带有 String.Empty 的 ModelState 中的键的错误实际上是正确的。我查看了源代码,它实际上使用 ViewData.TemplateInfo.HtmlFieldPrefix 来查找模型级别的验证错误。默认情况下,这是 String.Empty。
因此,将此值更改为“TradeModel”似乎是合乎逻辑的,但它会导致每个 HTML id 或名称都有前缀,因此绑定会失败!
如果视图模型包含对业务模型的引用,则由 IValidatableObject 添加到 ModelState 的任何错误都将添加一个键,该键包括与视图模型中的业务模型属性名称相等的前缀(在我们的示例中为“TradeModel”),从而导致键,例如“TradeModel.CounterpartyId”等。模型级错误会添加一个与视图模型的业务模型属性名称相同的键(“TradeModel”)。
因此,如果以这种方式构建视图模型,业务似乎无法添加模型级别的验证错误。
令我感到困惑的是,为什么当控制器的 Create 函数被编写为它以 Trade 视图模型对象作为参数时,这在我们的“真实”项目中确实有效。我昨天一定错过了这个,但是今天看它,当 MVC 绑定并触发验证时,它似乎在字典的末尾添加了一个额外的键,其值为 String.Empty。这包含使用 TradeModel 键添加的错误的副本。如您所料,ValidationSummary 会选择它们!
那么为什么 MVC 在我们的 live 项目中这样做,而不是在简单的测试应用程序中呢?
当编写控制器函数以将视图模型作为参数时,我已经看到两次触发验证。也许这每次都在做一些微妙的不同?
更新...再次
它在我们的实际项目中起作用的原因是在我们的基本控制器中隐藏了一些代码(所有其他控制器都从中继承),它将模型状态中发现的所有错误复制到具有 String.Empty 键的新条目中。此代码仅在两种情况之一中被调用。因此,真实应用程序和测试应用程序之间没有实际区别。
我现在明白发生了什么以及为什么 ValidationSummary 会这样。
asp.net-mvc - ASP.NET Mvc3 Jquery 对话框验证摘要错误显示?
对话内容
控制器
我想显示文本框的错误按钮。但它显示在顶部,如下所示:
如何显示每个文本框自己的错误?
我要这个:
谢谢。
asp.net-mvc-3 - MVC3 测试 ModelState 排除视图中的属性错误
我在 Google 和 Stack Overflow 上进行了一些搜索,但找不到这个问题的答案。
我认为有以下几点
我只对模型错误感兴趣,但如果发现属性错误,测试将返回 true。如何仅测试模型错误?
<br />
我可能需要在这里澄清一下,当有属性错误但没有模型错误时,我想做测试以停止被写出。
asp.net-mvc - 由于通过 javaScript 动态隐藏的表单字段上的 ValidationSummary 错误,无法发布表单。
ASP.NET MVC 3 应用程序。
我正在尝试发布具有一些使用 JavaScript 出现和消失的动态字段的表单。我正在使用 IValidatableObject 对其中一些动态字段进行服务器端验证。
当这些字段可见并且我发布表单时,验证工作正常,它会在 ValidationSummary 中提供适当的错误消息并回发。现在,虽然这些错误消息在那里,但我使用隐藏这些字段
document.getElementById("schoolNotListed").style.display = "none";
我尝试再次发布表单,每次都会弹出 ValidationSummary 错误。控件没有到达控制器,也没有到达视图模型中的 Validate() 函数。这是一些客户端验证,阻止表单发布。
有没有办法可以跳过或禁用这些现在通过 javaScript 隐藏的字段的验证。或者我可以通过 javaScript 清除 ModelState 吗?
如果您对如何以不同的方式处理它有一些建议?
谢谢
asp.net-mvc-3 - 同一页面中的两个 ValidationSummary
我在页面上有两个表单,每个表单都有自己的ValidationSummary
. 问题是随后one form
对both ValidationSummary
显示验证消息执行服务器端验证。是否可以ValidationSummary
在同一页面上有两个并ValidationSummary
为分配给它的每个表单执行?
c# - CustomValidator 问题和丢失 TextBox 数据
我的页面是一个注册页面,用户在其中输入用户名、电子邮件地址和密码。这是我背后的代码:
这是我的页面:
所以问题是,如果自定义验证器失败,当页面重新加载我的错误消息时,我的文本框是空的。但奇怪的是,如果我检查 Firebug 中的文本框元素,value
设置的input
,它只是由于某种原因没有显示在页面上。
我尝试EnableViewState
在文本框和页面上设置为 true,但这没有帮助。
有人知道我在做什么错吗?
c# - 在单个视图上显示两个不同的 ValidationSummary 控件。银光
如果我想在我的视图上显示两个不同的 ValidationSummary 控件,我需要做什么?第一个控件是显示常规验证错误的控件,很简单。第二个是 ValidationSummary 控件,它应该包含警告,但不包含错误。
为此,我尝试按照以下步骤操作:
- 将新属性添加到我的 ViewModel。该属性实现 INotifyDataErrorInfo 接口并继承自 FrameworkElement。
- 将 ValidationSummarys 的目标绑定设置为属性。
- 向集合调用属性的 ErrorChange 添加新警告时。
但 ValidationSummary 不显示任何警告。甚至不订阅此属性的 ErrorChange 事件。
我做错了什么?
validation - 按下回车键时不会显示验证摘要?
我对编程很陌生,这是我的第一篇文章,所以请多多包涵。
当我按下回车键并显示适当的验证摘要时,我正在尝试验证多个文本框。当我按下回车键时,表单会进行验证,但当我更改信息并再次按下回车键时,验证摘要不会更新。但是,当我按下“提交”按钮时它会更新。
我正在使用 2 个不同的验证摘要来显示用户是否未输入文本或已输入但密码不匹配(因为如果用户将项目留空,我想使用标题文本属性仅显示一条消息)。
我已经搜索了一个多小时,我能找到的最好的是:
但我不明白如何使用它。