Nerddinner вставки долготы и широты в базу данных MVC - PullRequest
2 голосов
/ 10 июня 2010

Я сталкиваюсь с проблемой в тормозах, с которой я сталкиваюсь:

в DinnerForm.ascx есть код JavaScript

 $(document).ready(function () {
        NerdDinner.EnableMapMouseClickCallback();

        $("#Dinner_Address").blur(function (evt) {
            //If it's time to look for an address, 
            // clear out the Lat and Lon
            $("#Dinner_Latitude").val("0");
           $("#Dinner_Longitude").val("0");
            var address = jQuery.trim($("#Dinner_Address").val());
            if (address.length < 1)
                return;
            NerdDinner.FindAddressOnMap(address);
        });
    });

когда я запускаю проект и вставляю новый Dinner, долгота и широта вставляются со значением 0;

и когда я изменил «0» на любое число

$ (документ) .ready (function () { NerdDinner.EnableMapMouseClickCallback ();

    $("#Dinner_Address").blur(function (evt) {
        //If it's time to look for an address, 
        // clear out the Lat and Lon
        $("#Dinner_Latitude").val("12");//
       $("#Dinner_Longitude").val("12");//
        var address = jQuery.trim($("#Dinner_Address").val());
        if (address.length < 1)
            return;
        NerdDinner.FindAddressOnMap(address);
    });
});

вставляет значение 12 для long и lat в базу данных

поэтому я знал, что оно вставляет это значение в базу данных, но на самом деле не уверен

так что я действительно хочу знать, как я могу это исправить, плз любой: D

Ответы [ 2 ]

1 голос
/ 07 июля 2010

Просмотрите Scripts / NerdDinner.js для этого блока кода:

//If we've found exactly one place, that's our address.
//lat/long precision was getting lost here with toLocaleString, changed to toString
if (NerdDinner._points.length === 1) {
    $("#Latitude").val(NerdDinner._points[0].Latitude.toString());
    $("#Longitude").val(NerdDinner._points[0].Longitude.toString());
}

Проблема заключается в том, что этот скрипт пытается установить значения для элементов с именем Широта и Долгота , но в Views \ Dinners \ DinnerForm.ascx эти идентификаторы элементов разрешаются как Dinner_Latitude и Dinner_Longitude соответственно.В качестве обходного пути вы должны иметь возможность изменить две строки в NerdDinner.js , чтобы он обновлял любой найденный элемент:

if (NerdDinner._points.length === 1) {
    $("#Latitude,#Dinner_Latitude").val(NerdDinner._points[0].Latitude.toString());
    $("#Longitude,#Dinner_Longitude").val(NerdDinner._points[0].Longitude.toString());
}
0 голосов
/ 12 июля 2010

Моя проблема заключалась в том, что нет значений на странице редактирования были сохранены.Это было проблемой в DinnersController.cs.

Я изменил

UpdateModel(dinner, "Dinner");

на

UpdateModel(dinner);

Казалось, проблема в том, что код контроллера ожидал ключи с именами Dinner.Id, Dinner.Title и т. Д.... но ключи на самом деле назывались просто Id и Title (и т. д.).

...