2
我试图在.NET中为一个uni项目实现一些Google Maps的东西。在页面加载时从隐藏字段中获取JS值
但是,我正在努力将自己的坐标放到我的.NET Google地图控件中。
我认为最简单的方法是使用HTML5地理定位API获取当前位置的坐标,然后在我的.NET代码中抓住这些坐标并使用它们来居中地图。
我有以下JS代码:
$(document).ready(function() {
if (Modernizr.geolocation) {
navigator.geolocation.getCurrentPosition(getCoords);
}
else {
// no support
}
function getCoords(position) {
$("#lat").val(position.coords.latitude);
$("#long").val(position.coords.longitude);
}
});
这使得对纬度和经度坐标在各自隐藏的文本框,#lat
和#long
。
现在,我想抓住他们在我的代码隐藏.NET代码。我试图做这样的:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// some other code
}
// maps
addStoreMap.enableDragging = false;
addStoreMap.enableGoogleBar = false;
// grab the coordinates here.
decimal lat = Convert.ToDecimal(hdnLat.Value);
decimal lng = Convert.ToDecimal(hdnLong.Value);
}
然而,这总是返回空值。我似乎无法将坐标值加载到我的.NET代码中。尽管我通过JS提醒他们,但我获得了这些值。这是因为Page_Load事件发生在我的JS执行之前?如果是这样,我将如何解决这个问题?
感谢
PreventDefault是我偶然从一些按钮上的点击事件尝试留下的代码。对于那个很抱歉。我设法做你在做的事情;但是,ASP.NET部分在这里创建问题。我似乎无法让我的JS值到我的.NET代码中,因为Page_Load事件似乎在JS完成加载坐标之前调用,因此总是返回一个空值。 – cabaret
'Page_Load'在服务器上完成,'document.ready'在客户端完成。他们真的没有任何关系。你必须加载你的页面,然后有一些东西发回服务器。什么触发了这个帖子? – ThinkingStiff
我没有发布任何内容到服务器。我只是从我的.NET代码中的隐藏字段中获取值。此时此刻相当困惑......因为如果他们与彼此没有任何关系,为什么它不会在.NET代码中给我正确的值? :(我会睡在上面,明天再想一想,谢谢你的时间! – cabaret