Привязать System.Data.Entity.Spatial.DbGeography к модели MVC - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть модель 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. Как я могу это сделать?

...