我有一个带有 DBGeometry 字段的 MVC 模型
[Required(AllowEmptyStrings = false, ErrorMessage = "Location is required")]
public System.Data.Entity.Spatial.DbGeography LocationGps { get; set; } // LocationGPS
在我的视图中,我有这个隐藏的值。
@Html.HiddenFor(model => model.LocationGps)
@Html.HiddenFor(model => model.Lat)
@Html.HiddenFor(model => model.Lng)
当我编辑模型时,我将以下内容写入我的控制器
model.LocationGps = Utils.Geography.ConvertLatLonToDbGeography(model.Lng, model.Lat);
if (ModelState.IsValid)
{}
ConvertLatLonToDbGeography 代码:
public static DbGeography ConvertLatLonToDbGeography(double longitude, double latitude)
{
var point = string.Format("POINT({1} {0})", latitude, longitude);
return DbGeography.FromText(point);
}
但是 ModelState 总是 Invalid 因为 LocationGps 为空。如何通过我的视图为我的 LocationGps 参数设置正确的值?概念是拥有一个谷歌地图,从 javascript 中获取坐标(存储在 Lat & Lng 字段中),然后正确设置我的 LocationGps。我怎样才能做到这一点?