【问题标题】:Is it possible to Display validation errors when page loads in MVC - 4 (with model validations)在 MVC 中加载页面时是否可以显示验证错误 - 4(带有模型验证)
【发布时间】:2016-07-18 12:41:18
【问题描述】:

是否可以基于模型验证在页面加载时触发验证错误消息。

    [Display(Name = "Quantity")]
    [Required(ErrorMessage = "Please enter Quantity")]
    [Range(1, 1000, ErrorMessage = "Please enter Qty between the range of 1 to 1000")]
    [RegularExpression("^([0-9])*$", ErrorMessage = "Please enter valid Qty")]
    public int? QTY { get; set; }

如果 Qty 的保存值在数据库中为 0(零),我想获取它并显示在屏幕上,根据模型验证这是无效的。 那么是否可以在控制器中不进行任何值检查的情况下触发该消息。

【问题讨论】:

  • 您可以打开客户端验证。
  • 在 GET 方法中添加一个ModelState 错误(但是为什么你的数据库中有无效值?)
  • 我在数据库中有一些表用于存储从 excel 表中读取的值。它可能包含一些无效数据,因此我必须将其存储在某个位置,之后该用户有权更正该数据并将其导入系统。这就是为什么我有无效数据,我需要向用户显示该数据在页面加载时无效。
  • 然后在GET方法中使用TryValidateModel()

标签: c# asp.net-mvc validation asp.net-mvc-4


【解决方案1】:

提供的信息有点少,但我会尝试。

如果您在客户端上使用jQuery Validate,并且您将显示所述库的错误错误消息。你可以尝试使用类似的东西:

$("#myform").validate();

但是,如果您要显示自动 ajax 错误消息块。我建议使用Stephen Muecke 在评论中提出的建议。

如果您希望获得更具体的回复,请尝试指定您使用的所有关于验证的工具和库。或者,甚至只是简单地展示您的表单显示解决方案,都会对您使用的库和工具产生疑问。

PS。尝试研究显示所需错误消息的客户端解决方案。如果您了解触发消息的原因。您应该能够使用脚本语言等轻松触发相同的事件。

希望这会有所帮助:)

【讨论】:

  • 谢谢,我会试试的。 :)
  • 我已经尝试过您的解决方案,但它不起作用。 ModelState 可以工作,但我必须检查属性的所有值以添加相关错误。这不是最好的解决方案,但我必须使用它,因为没有其他可能的解决方案。谢谢你的时间:)
  • 仍然不确定在客户端显示错误消息的解决方案。我确信有一种干净的方法可以做到这一点。例如,您能弄清楚是什么导致错误消息弹出是来自脚本库还是来自控制器?使用验证属性有几种不同的方法。
  • 就我而言,它来自控制器。
  • 在这种情况下,请在打开视图之前尝试在 get 方法中调用 ModelState: var x = ModelState.IsValid;返回视图(myList);
猜你喜欢
  • 2017-10-21
  • 2015-04-09
  • 2018-02-18
  • 1970-01-01
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多