2016-12-04 149 views
-1

因此,在我的索引視圖中,我以經度和緯度的形式接收並顯示用戶的當前位置。從視圖(javascript)向MVC中的控制器發送數據5

(function getLocation() { 
     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(showPosition); 
     } 
    }()); 
    function showPosition(position) { 
     $('#lat').text(position.coords.latitude); 
     $('#long').text(position.coords.longitude); 

    } 

有沒有辦法將position.coords.latitude和position.coordes.longitude發送到我的索引控制器? 或者我應該讓用戶點擊一個按鈕來提交它們,就像表單一樣?我是使用座標的新手。

在此先感謝!

回答

1

把這個在您的showPosition功能:

var postData = { Lat: position.coords.latitude, Long: position.coords.longitude }; 
$.ajax(
{ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "AjaxTest", 
    //dataType: "json", 
    data: JSON.stringify(postData), 
    success: function (data, status) { 
     alert("Pass" + data); 
    }, 
    error: function (ex) { 
     alert("Fail" + ex); 
    } 
}); 

在你的控制器,你需要這個動作。給它一個更好的名字,請:

public JsonResult AjaxTest(Position position) 
{ 
    // do whatever you want here. I am simply returning the value. 
    return Json("You posted: " + position.Lat + " items.", JsonRequestBehavior.AllowGet); 
} 

你會需要這樣的模式:

public class Position 
{ 
    public double Lat { get; set; } 
    public double Long { get; set; } 
} 
+0

現在運行應用程序時,我得到這個警告:http://i.imgur.com/ n12Jy15.png – crystyxn

+0

因爲您需要更改要發佈的網址。您是否在生成視圖的同一控制器中創建了該操作?如果沒有,你必須指定網址。我只是把行動的名字,因爲視圖是從同一個控制器生成的。 – CodingYoshi

+0

是的,它在索引控制器 – crystyxn

相關問題