asp.net里面的javascript没有设置隐藏字段值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net里面的javascript没有设置隐藏字段值相关的知识,希望对你有一定的参考价值。

我是Asp.net的新手。我试图使用GeoLocation获取纬度和经度,并尝试将值设置为PageLoad上的隐藏字段。

问题是隐藏字段的值始终为空。但是请在javascript调用中查看alert语句,警报会正确显示纬度和经度值。如何填充C#代码中的隐藏字段,以便在页面加载时将这些值作为电子邮件发送。请帮忙

aspx代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <script>
       window.onload = getLocation();
       var x = document.getElementById("demo");
       function getLocation() {
           if (navigator.geolocation) {
               navigator.geolocation.getCurrentPosition(showPosition);
           }
           else { x.innerHTML = "Geolocation is not supported by this browser."; }
       }
        function showPosition(position) {
            document.getElementById('<%=Latitide.ClientID%>').value = position.coords.latitude;
            document.getElementById('<%=Longitude.ClientID%>').value = position.coords.longitude;
           alert("Latitude: " + position.coords.latitude +
               "<br>Longitude: " + position.coords.longitude);

       }

        </script>
</head>
<body>
    <form id="form1" runat="server">

    <br />
   <asp:HiddenField runat="server" ID="Latitide" ClientIDMode="Static" Value="" />
   <asp:HiddenField runat="server" ID="Longitude" ClientIDMode="Static" Value="" />
    </form>
</body>
</html>

代码背后:

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        Response.Write("Latitude " + Latitide.Value + "-Longitude" + Request.Form["Longitude"]);
    }


}
答案

您的服务器端代码(Page_Load)在首次请求页面时执行,此时这些值为空,在ASPX标记中设置(朝向该文件的底部)。

当该文件随后被提供给浏览器时,它会执行您拥有的JavaScript代码(onload),此时设置这些隐藏字段的值(但您仍然不会在页面源中看到它们)。如果你javascript-alert这个: document.getElementById('<%=Longitude.ClientID%>').value ...我想你会看到你的期望。

我需要更多地了解该网页的意图,以提供更多指导。

以上是关于asp.net里面的javascript没有设置隐藏字段值的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery / JavaScript (ASP.NET) 将下拉链接的父列表项设置为活动状态

asp.net 中 DateTime 的 Javascript 序列化没有给出 javascript 日期对象?

asp.net网页中如何弹出FORM窗体

如何在 ASP.NET 响应中将 Transfer-Encoding 设置为显式或隐式分块?

asp.net中如何用/路径来引用js文件?

有没有办法拦截和修改asp.net中的html输出流,以结合javascript?