下面的代码有啥问题?

Posted

技术标签:

【中文标题】下面的代码有啥问题?【英文标题】:what is wrong with the below code?下面的代码有什么问题? 【发布时间】:2016-05-07 17:40:42 【问题描述】:
string str = "<script type='text/javascript'>" +
                 "var lat=lon=-1;" +
                 "getLocation();" +
             "function getLocation() " +
                 "if (navigator.geolocation) " +
                     "navigator.geolocation.getCurrentPosition(showPosition);" +
                 "" +
              "" +
             "function showPosition(position) " +
                 "lat=position.coords.latitude;" +
                 "lon=position.coords.longitude;" +
                 "document.getElementById('<%=ltrLat.ClientID%>').innerhtml=lat;"+
                 "document.getElementById('<%=ltrLon.ClientID%>').innerHTML= lon;"+
                 "var x= document.getElementById('<%=ltrLat.ClientID%>').innerHTML;"+
                 "var y= document.getElementById('<%=ltrLon.ClientID%>').innerHTML;" +
                 "alert('lat='+x+'lon='+ y);" +
             "" +
             "</script>";
              ClientScriptManager cs = this.ClientScript;
              cs.RegisterStartupScript(this.GetType(),"xyz", str);

ltrLat 和 ltrLon 是客户端的 asp 标签。 而且标签不显示 我没有收到警报。

【问题讨论】:

从不使用字符串 s 注意:&lt;%= ... %&gt; 仅作为渲染过程的一部分在 .aspx 文件中被识别。它不会在字符串文字或.cs 文件中被替换。 【参考方案1】:

我也尝试过类似的方法,但我得到的是 .net 字符串不允许你编写脚本,所以我建议你将脚本嵌入 .aspx 并在 .cs 中定义全局变量,然后在脚本中使用这些变量作为

<script>    
var x= <%= globalXInCS %>
</script>

【讨论】:

我在这里要做的主要事情是使用注册启动脚本从服务器端运行脚本,然后在服务器上读取脚本中的坐标。 你想获取服务器或客户端的位置吗? 我想使用我在上述脚本中使用的地理定位 api 获取客户端设备位置。我按照你的方式将脚本嵌入 .aspx 并从服务器调用 getLocation 函数。这是工作。纬度和经度是坐标。但我无法在服务器端读取这些值。 您想要服务器端的纬度或经度吗?比你有两种方法通过 jquery 临时将纬度和经度存储在一些文本框中,当事情得到确认时,获取文本框的值..【参考方案2】:

如果您想使用 Ajax,请在 .aspx 中添加以下代码 请记住,您必须创建一个 web 方法来处理 .cs 文件中的 ajax 请求 .aspx

google.maps.event.addListener(marker, 'dragend', function (evt)

                    var lati = evt.latLng.lat();
                    var longi = evt.latLng.lng();
                    var data1 = JSON.stringify( latitude: lati, longitude: longi, locationId: this.id );

                    Updatelocations(data1);
                );


 function Updatelocations(data1) 

            $.ajax(
                type: "POST",
                url: window.location.pathname + '/UpdateLoc',
                data: data1,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function () 
                    alert("Location Updated..!");
                ,
                error: function (xhr, status, error) 
                    alert(xhr.status);
                    alert(xhr.responseText);
                    alert(data1);
                
            );
        
</script>

.cs

[WebMethod]
    public static void UpdateLoc(double latitude, double longitude, long locationId)
    
        double lti = Convert.ToDouble(latitude);
        double lngi = Convert.ToDouble(longitude);
        long locationid= Convert.ToInt64(locationId);
        DACLocation.UpdateLocation(lti, lngi, locationId);
    

希望你能好好理解

【讨论】:

以上是关于下面的代码有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章

下面的代码有啥问题,我没有得到输出

CMapX添加一个点,下面的代码有啥有关问题

下面的代码有啥作用? C++ [重复]

spark中的lit()有啥用?下面的两段代码返回相同的输出,使用 lit() 有啥好处 [重复]

下面的 React 代码有啥区别?哪一种最有效或最有效?或者它们实际上是一样的?

下面的两个 sed 命令有啥区别?