4

WCFサービスから座標のリストを取得するASP.NETMVC3アプリケーションがあります。このサービスは、いくつかのプロパティ(XcoorおよびYcoor)を含むリストを返します。

   public List<Location> GetCoordinate()
        {
            sensor = new Location();

            List<Location> coordinateList = sensor.GetSensorInformation();

            return coordinateList;

        }

私のWebページには、2つのパラメーターを受け取り、ページ(地図上)に座標を表示するJavaScript関数があります。

function GetLocation(y, x){
//my code here
}

コントローラーから座標のリストを取得し、それらをそのJS関数に渡して処理したいと思います。

これを行うための最良の方法は何ですか?

以下を使用してみましたが、結果を解析する方法がわかりません

 $.ajax({
            url: '@Url.Action("GetCoordinate")',
            type: 'GET',
             dataType: 'xml',
            success: function(result) {

            },
            error: function (xhr, ajaxOptions, thrownError){
                    alert(xhr.status);
                    alert(thrownError);}
        });

何か案は?

4

2 に答える 2

8

コントローラを次のように変更します。

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を使用して、データに対して何かを行うことができます(この場合はアラートを実行しているだけです)。

于 2012-05-03T17:37:29.580 に答える
0

ここにはたくさんのものがあります。

コントローラで関数を定義するメソッドを定義する

public JsonResult GetCoodinates(){}

メソッドでWCFサーバーを使用し、結果をJsonResultに変換します。

あなたのJavaScriptで

$ .ajax({url:'/ controller / GetCoordinates'、type:GET、dataType:'json'、success:function(data){$ .each(data、function(key、value){//呼び出しを行うマップ上に座標を配置するためにここで実行しています}});

于 2012-05-03T17:37:05.833 に答える