javascript - 页面加载时地理位置将值传递给 url.action

标签 javascript jquery asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

任何人都可以帮助解决这个问题吗,我正在尝试在页面加载时使用地理位置获取纬度经度值,问题是,我在尝试弄清楚如何将值传递到 mvc 部分 View 时遇到问题,我现在已经关注它很长时间了,所以希望一双新的眼睛能够看到我的问题。

谢谢

乔治

<script>
    if (navigator.geolocation) {
        alert("Geo-Enabled");
        navigator.geolocation.getCurrentPosition(showPosition, showError);
    }

    function showPosition(position) {
        var lat = position.coords.latitude;
        var lon = position.coords.longitude;
        @*var actionUrl = '@Html.Raw(Url.Action("CurrentConditions","Weather", new {latitude = lat,longitude = lon}))';*@
        alert(lat + ' ' + lon);
            @*url: '@Url.Action("CurrentConditions","Weather", new {latitude = '+ position.coords.latitude +',longitude = ' + position.coords.longitude+'})',*@
        url: '@Html.Raw(Url.Action("CurrentConditions","Weather", new {latitude = lat,longitude = lon}))'; @*<<<<<<Does not work*@
    }
function showError(error)
  {
  switch(error.code) 
    {
    case error.PERMISSION_DENIED:
        alert( "Unable to display accurate weather forcast, location denied.");
      break;
    case error.POSITION_UNAVAILABLE:
        alert( "Location information is unavailable.");
      break;
    case error.TIMEOUT:
        alert( "The request to get user location timed out.");
      break;
    case error.UNKNOWN_ERROR:
        alert( "An unknown error occurred.");
      break;
    }
  }
</script>

抱歉,离开了,回来整理了一下,只是需要休息一下:-)

$.ajax({
            url: '@Html.Raw(Url.Action("CurrentConditions","Weather"))',
            type: 'get',
            alert: (lat),
            data: {
                latitude: lat,
                longitude: lon
            }
        });

最佳答案

生成操作 URL 时不会执行 JavaScript。

你可以试试这个

var url = '@Url.Action("CurrentConditions","Weather")';
url = url + "?latitude=" + position.coords.latitude + '&longitude=' + position.coords.longitude;

var url = '@Url.Action("CurrentConditions","Weather", new {latitude = -1,longitude = -2})';
url = url .replace("-1", position.coords.latitude);
url = url .replace("-2", position.coords.longitude);

关于javascript - 页面加载时地理位置将值传递给 url.action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17187816/

相关文章:

javascript - 将 renderer.clear() 放在 render() 的末尾会使我的场景变黑

javascript - 将 jQuery 对象存储在数组/对象中

javascript - 从 Twitter API 获取更高分辨率的个人资料图像

c# - 在 asp.net mvc Controller 中处理异常

javascript - 在 AJAX 中的表单元格上添加带有参数的 @url.action

c# - 在asp.net core 2.0中重写url

javascript - 如何动态使用 jQuery 切换方法?

javascript - 更改类选择器不适用于附加项目

javascript - jQuery 检查按下的键是否可打印

javascript - 收集复选框的值并使用所述值自动选中其他 div 中的复选框