У меня есть модель MVC с полем DBGeometry
[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 code:
public static DbGeography ConvertLatLonToDbGeography(double longitude, double latitude)
{
var point = string.Format("POINT({1} {0})", latitude, longitude);
return DbGeography.FromText(point);
}
Но ModelState всегда недействителен, так как LocationGpsзначение NULL. Как я могу правильно установить значения для моего параметра LocationGps через мой вид? Идея состоит в том, чтобы получить карту Google, получить координаты из javascript (хранящегося в полях Lat и Lng) и затем правильно установить мои LocationGps. Как я могу это сделать?