【问题标题】:MVC 5 model validation message not correctly displayingMVC 5 模型验证消息未正确显示
【发布时间】:2014-12-03 06:23:53
【问题描述】:

我正在编写一个 MVC 5 互联网应用程序,我有一个关于视图模型中字段验证的问题。

这是我的视图模型字段:

[Display(Name = "Latitude")]
[Required(ErrorMessage = "Please enter a valid latitude.")]
public double startupLatitude { get; set; }

这是我的视图代码:

<div class="form-group">
    @Html.LabelFor(model => model.startupLatitude, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.EditorFor(model => model.startupLatitude, new { htmlAttributes = new { @class = "form-control" } })
        @Html.ValidationMessageFor(model => model.startupLatitude, "" , new { @class = "text-danger" })
    </div>
</div>

如果我输入的值不是双精度值,例如:

测试

我在视图中显示以下验证消息:

值“测试”对纬度无效。

代替:

请输入一个有效的纬度。

这是为什么?

提前致谢。

【问题讨论】:

  • 添加@Html.EditorFor()方法生成的html
  • 这种行为是正常且有效的,因为您输入的是字符串,而模型属性是双精度类型。
  • 这里使用Required 是没有意义的,因为double 必须始终有一个值。仅当您有double?(可为空)时才需要

标签: asp.net-mvc-5 double asp.net-mvc-viewmodel asp.net-mvc-validation validationmessage


【解决方案1】:

因为必需的参数检查不为空,并且您输入的数据是一个“字符串”,正如它所期望的那样

如果您将该字段保留为空白,则错误消息将显示为“请输入有效的纬度。”

编辑:

Set Default/Replace Default Validation Message

或者

也尝试使用Regular Expression

【讨论】:

  • 我可以通过某种方式修改代码,以使验证消息对于空条目或字符串都相同吗?
  • DataType 不包含Double 的枚举值
  • @StephenMuecke 感谢更新我已经更新了我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-14
  • 2021-10-17
  • 1970-01-01
  • 2017-01-06
  • 1970-01-01
  • 2013-07-16
  • 1970-01-01
相关资源
最近更新 更多