Asp.net mvc 5 MVC 5模型验证消息未正确显示

Asp.net mvc 5 MVC 5模型验证消息未正确显示,asp.net-mvc-5,double,asp.net-mvc-viewmodel,asp.net-mvc-validation,validationmessage,Asp.net Mvc 5,Double,Asp.net Mvc Viewmodel,Asp.net Mvc Validation,Validationmessage,我正在编写一个MVC5互联网应用程序,我有一个关于视图模型中字段验证的问题 以下是“我的视图模型”字段: [Display(Name = "Latitude")] [Required(ErrorMessage = "Please enter a valid latitude.")] public double startupLatitude { get; set; } 以下是我的查看代码: <div class="form-group"> @Html.LabelFor(mo

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

以下是“我的视图模型”字段:

[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>

@LabelFor(model=>model.startupLatitude,htmlAttributes:new{@class=“controllabel col-md-2”})
@EditorFor(model=>model.startupLatitude,new{htmlAttributes=new{@class=“form control”})
@Html.ValidationMessageFor(model=>model.startupLatitude,“,new{@class=“text danger”})
如果输入的值不是双精度值,例如:

试验

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

值“Test”对纬度无效

而不是:

请输入有效的纬度

为什么会这样


提前感谢。

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

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

编辑:


尝试使用
正则表达式

添加由
@html.EditorFor()
方法生成的html此行为正常有效,因为您输入的是字符串,而模型属性的类型为double。此处使用
Required
毫无意义,因为
double
必须始终具有值。只有当您有
double?
(可为空)时才有必要。我可以通过某种方式修改代码,使空条目或字符串的验证消息相同吗?
DataType
不包含
double
@StephenMuecke的枚举值谢谢您的更新我已经更新了我的答案