我在nerddinner面临一个问题,我面临的是什么:
$(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 :(得分: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(等)。