【问题标题】:Nerddinner inserting longitude and latitude to database MVCNerddinner 将经度和纬度插入数据库 MVC
【发布时间】:2010-06-09 21:56:00
【问题描述】:

我在书呆子中遇到了一个问题,我面临的是什么:

在 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

【问题讨论】:

  • 你想让它做什么?
  • 我遇到了同样的事情,当我插入晚餐时,该位置在创建(和编辑)页面中正确显示,但在详细信息页面中它使用 0,0 位置。

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


【解决方案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());
}

问题似乎是该脚本尝试为名为 LatitudeLongitude 的元素设置值,但在 Views\Dinners\DinnerForm.ascx,这些元素 id 分别被解析为 Dinner_LatitudeDinner_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!我的情况是,这解决了给定地址的问题,地图找不到它并以该地址为中心。谢谢!
  • @John 谢谢,很高兴知道它对某人有所帮助!
【解决方案2】:

我的问题是编辑页面中的 none 值被保留。这是 DinnersController.cs 中的一个问题。

我变了

UpdateModel(dinner, "Dinner");

UpdateModel(dinner);

问题似乎在于控制器代码需要名为 Dinner.Id、Dinner.Title 等的键,但这些键实际上只是命名为 Id 和 Title(等等)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2019-08-04
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    相关资源
    最近更新 更多