[英]Pass data from ASp.NET MVC Controller to JavaScript function
我有一個ASP.NET MVC3應用程序,它從WCF服務獲取坐標列表。 此服務返回具有一些屬性的列表(Xcoor和Ycoor)。
public List<Location> GetCoordinate()
{
sensor = new Location();
List<Location> coordinateList = sensor.GetSensorInformation();
return coordinateList;
}
在我的網頁中,我有一個JavaScript函數,它接受2個參數並在頁面上顯示坐標(在地圖上)
function GetLocation(y, x){
//my code here
}
我想從我的控制器獲取coordiates列表,並將它們傳遞給JS函數進行處理。
最好的方法是什么?
我嘗試使用以下,但我不知道如何解析結果
$.ajax({
url: '@Url.Action("GetCoordinate")',
type: 'GET',
dataType: 'xml',
success: function(result) {
},
error: function (xhr, ajaxOptions, thrownError){
alert(xhr.status);
alert(thrownError);}
});
有任何想法嗎?
將您的控制器更改為以下內容:
public ActionResult GetCoordinate()
{
sensor = new Location();
List<Location> coordinateList = sensor.GetSensorInformation();
return Json(coordinateList, JsonRequestBehavior.AllowGet);
}
現在你的控制器動作正在返回jQuery可以處理的JSON。
更改您的jQuery方法來執行此操作:
$.ajax({
url: '@Url.Action("GetCoordinate")',
type: 'GET',
dataType: 'json',
success: function(data) {
// process the data coming back
$.each(data, function(index, item) {
alert(item);
});
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
現在你的AJAX方法知道它正在處理JSON數據。 你可以使用jQuery的每個方法對數據做一些事情(在這種情況下我只是做一個警報)。
那里有很多東西。
在控制器上定義一個函數定義一個方法
public JsonResult GetCoodinates(){}
在方法中使用您的WCF服務器並將結果轉換為JsonResult。
在你的JavaScript中
$ .ajax({url:'/ controller / GetCoordinates',type:GET,dataType:'json',success:function(data){$ .each(data,function(key,value){//做任何事都叫你正在這里把坐標放在地圖上}});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.