下面的模型已要求某些参数属性:验证消息对于范围属性MVC
public class EModel
{
[Required]
[Display(Name = "Name")]
public string Name { get; set; }
[Required]
[Display(Name = "Tel")]
public string Phone { get; set; }
public float Long { get; set; }
public float Lat{ get; set; }
}
在我的看法,我有姓名,电话,和2个浮动参数:经度和纬度,我保持一个隐藏输入,它们由地图标记设置以后保存。
我验证所需的参数如下所示:
<div>
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { placeholder = "Name" } })
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "danger" })
</div>
<div>
@Html.EditorFor(model => model.Phone, new { htmlAttributes = new { placeholder = "Phone" } })
@Html.ValidationMessageFor(model => model.Phone, "", new { @class = "danger" })
</div>
<div>
@Html.HiddenFor(x => x.Long, new { @id = "Long"})
@Html.HiddenFor(x => x.Lat, new { @id = "Lat"})
</div>
<div>
<button type="submit">Save</button>
</div>
我需要验证添加到长,纬度参数,因为我不想让用户保存不首先选择一个位置。这么长时间和LAT应不大于0.001较小,所以我增加了以下属性:
[Range(0.001, float.MaxValue)]
public float Long { get; set; }
[Range(0.001, float.MaxValue)]
public float Lat{ get; set; }
我想验证上提交点击,事实证明朗和纬度都没有0.00。
我该怎么做? @Html.ValidationMessageFor(x=>x.Long)
没有工作。
为什么要验证不能是场通过用户输入设置?默认情况下,客户端验证不适用于隐藏字段。虽然 –
@ ste-fu我编辑解释更多,服务器端验证仍然应该工作。浮点值由地图标记设置。我不想让用户先保存而没有先选择位置 – HelpASisterOut
*我不想让用户先保存而没有先选择位置* ..所以你想检查是否有价值?或检查长和经度是<.001? –