在我的HomeController我有以下方法:傳遞一個值從JsonResult方法,另一種方法
public JsonResult AjaxTest(Position postData)
{
Session["lat"] = postData.Lat;
Session["lng"] = postData.Long;
return Json("", JsonRequestBehavior.AllowGet);
}
我怎麼能有緯度和經度在我的索引方法?
它是public async Task<ActionResult> Index()
,如果它很重要。
在被檢索和傳遞用戶的當前座標視圖中的腳本:
var x = document.getElementById("positionButton");
(function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
}());
function showPosition(position)
{
if (position == null) alert('Position is null');
if (position.coords == null) alert('coords is null');
$('#lat').text(position.coords.latitude);
$('#long').text(position.coords.longitude);
var postData = { Lat: position.coords.latitude, Long: position.coords.longitude };
$.ajax(
{
type: "POST",
contentType: "application/json; charset=utf-8",
url: "@Url.Action("AjaxTest", "Home")",
//dataType: "json",
data: JSON.stringify(postData)
});
}
我需要能有另一個位置用戶的當前緯度/長的時間距離。 lat和lng被聲明爲公共變量,那麼爲什麼它們在試圖使用Index方法內的座標時保持爲0?
編輯,這裏是指數方法:
public object x;
public async Task<ActionResult> Index()
{
x = Session["lat"];
return View(parkingLot);
}
你在相同的請求中訪問它們? – JB06
我不確定,在Index加載並獲取座標後,它將它發送到JsonResult。 – crystyxn
嘗試將postData作爲對象傳遞,而不是字符串。數據:postData。另一件事要檢查...你有沒有在你的javascript上設置一個調試器來確保你的Lat和Long不是0? – Daryl