【问题标题】:MVC 4 validation integer overflowMVC 4 验证整数溢出
【发布时间】:2012-12-18 11:07:48
【问题描述】:

我的视图模型上有一个int? 类型的属性

/// <summary>
/// Represents A company Id 
/// </summary>
[Range(1, 999999999, ErrorMessage="Error"])          
public int? CompanyId{ get; set; }

我用户从文本框中输入了一个溢出int32 maxValue 的大数字,那么我认为 引发内部验证异常,但未显示消息。

我正在通过调用覆盖global.asax 中的默认消息:

DefaultModelBinder.ResourceClassKey = "GlobalResources";

你知道我应该输入什么键来覆盖资源以便显示消息吗? Int32 溢出是否有任何具体消息?

我已经覆盖了PropertyValueInvalid,但它没有显示。似乎还有另一个键需要被覆盖。请指出我在哪里可以找到所有默认键列表。

【问题讨论】:

  • 您想在您的View 上显示该消息吗?如果是这样,您可以发布View 的代码吗?
  • 我现在不能,因为我不在 pc 附近,但如果这是问题的话,我在 BeginForm 中有 @Html.ValidationSummary()。
  • 你的View上也有@Html.ValidationMessageFor(model =&gt; model.CompanyId)吗?
  • 不,只有验证摘要
  • 没有它,该特定属性的验证消息将不会显示。但是,摘要仍应显示。是这样吗?

标签: asp.net-mvc asp.net-mvc-3 validation asp.net-mvc-4


【解决方案1】:

您需要将@Html.ValidationMessageFor(model =&gt; model.CompanyId) 添加到您的视图中,以便实际显示验证消息。否则,正如您所提到的,您的文本框上只会出现 red 边框。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 2011-12-21
    • 2022-01-21
    • 2013-12-17
    • 2012-08-23
    相关资源
    最近更新 更多