我有一个基本的Web表单页面,该页面具有两个隐藏字段,它们的值在从Bing Maps接收到结果后在jQuery方法中设置。基本结构是这样的:
<asp:HiddenField runat="server" ID="hvLatitude" ClientIDMode="Static" />
<asp:HiddenField runat="server" ID="hvLongitude" ClientIDMode="Static" />
这是设置隐藏字段的Javascript片段(剪切出Bing Maps调用):
if (results.resourceSets[r].resources[re].geocodePoints[gp].usageTypes[u] == "Route") {
console.log('found it!');
var coords = results.resourceSets[r].resources[re].geocodePoints[gp].coordinates;
console.log(coords);
var lat = $("#hvLatitude");
var lng = $("#hvLongitude");
//make sure it only gets set once
if (lat.val().length == 0 || lng.val().length == 0) {
lat.val(coords[0]);
lng.val(coords[1]);
console.log('values set!');
}
}
代码运行时,发生了我的标准回发并且不存在隐藏值-我已经检查了字段本身并查看了
Request.Forms
,但它们是空字符串。尝试ClientIDMode="Static"
和Auto
没有运气。最奇怪的部分是,如果我在控制台中执行$("#hvLatitude").val()
(因为Visual Studio正在等待我从断点处移动a),并且值在那里!这是我见过的最令人困惑的事情。有什么建议么?该页面上没有Javascript错误,因此目前我完全不知所措。
最佳答案
检查这两个隐藏字段是否在页面表单内,并从开发人员面板的“网络”选项卡中检查它们的值是否回发,如果您在回发功能中更改了它们的值,它是否在客户端发生了变化?
关于javascript - ASP.NET隐藏字段不发布,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45093415/