簡體   English   中英

將數據從ASp.NET MVC Controller傳遞到JavaScript函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM