Nerddinner将经度和纬度插入数据库MVC

时间:2010-06-09 21:56:01

标签: asp.net-mvc geolocation bing-maps latitude-longitude nerddinner

我在nerddinner面临一个问题,我面临的是什么:

在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);
        });
    });

当我运行项目时,我插入新的晚餐,经度和纬度插入值0;

当我将“0”改为任何数字时

$(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("12");//
       $("#Dinner_Longitude").val("12");//
        var address = jQuery.trim($("#Dinner_Address").val());
        if (address.length < 1)
            return;
        NerdDinner.FindAddressOnMap(address);
    });
});

它将long和lat的值12插入数据库

所以我知道它将这个值插入数据库,但实际上并不确定

所以我真的想知道如何解决这个问题,请问任何人:D

2 个答案:

答案 0 :(得分:1)

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 <中/ strong>,这些元素ID分别被解析为 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());
}

答案 1 :(得分:0)

我的问题是编辑页面中的值的 none 是持久的。这是DinnersController.cs中的一个问题。

我改变了

UpdateModel(dinner, "Dinner");

UpdateModel(dinner);

似乎问题是控制器代码期望名为Dinner.Id,Dinner.Title等的键,但键实际上只是命名为Id和Title(等)。