2

我在书呆子中面临一个问题,我面临的是:

在 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

4

2 回答 2

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());
}
于 2010-07-07T03:41:48.200 回答
0

我的问题是编辑页面中的任何值都没有保留。这是 DinnersController.cs 中的一个问题。

我变了

UpdateModel(dinner, "Dinner");

UpdateModel(dinner);

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

于 2010-07-12T12:35:14.757 回答