0

MVC アプリケーションで REST サービスにアクセスしようとしています。メソッドを呼び出して、 jsongetJSON形式でデータを返す REST サービスを内部的に呼び出すコントローラーからデータを取得しています。しかし、メソッドの出力で多くを取得しています。私のリターンJsonは適切なJSONデータを返していないため、クライアント側のスクリプトはJSONプロパティにアクセスできません。"\DownLoadString

私の見解での私のスクリプトは

$.getJSON("@Url.Action("GetManufacturers", "Home")",function(data){
     console.debug("Status is : "+data.Status)
});

私のアクションメソッドは次のようになります

public ActionResult GetManufacturers()
{          
        string restURL ="http://mytestserver/myapi/Manufacturers";
        using (var client = new WebClient())
        {               
            var data = client.DownloadString(restURL); 

           //data variable gets "\" everywhere
            return Json(data,JsonRequestBehavior.AllowGet);                      
        }   
}

アクション メソッドで Visual Studio ブレークポイントを使用しましたが、多くの\" ここに画像の説明を入力

そして、getJSONコールバックに何が送信されているかを確認しましたが、JSON タブは空です。 ここに画像の説明を入力 しかし、私の応答タブには次のようなコンテンツがあります

ここに画像の説明を入力

\" がなければうまく解析できると思います。

フィドラーを使用して、REST サービスから正しい (JSON 形式の) データを取得しているかどうかを確認しましたが、問題ないようです。

ここに画像の説明を入力

誰でもこれに取り組むのを手伝ってもらえますか? アクション メソッドから適切な JSON を返したいと思います。いつか、C# コード自体で json プロパティを読みたいと思うかもしれません。でそれを行う例を見ましたDataContractJsonSerializer。しかし、それには変換する具体的な型が必要です。私はそれをしたくありません。他のクライアントも私の RESTService にアクセスするため、これに偽のエンティティを書き込むことをどのように期待するのでしょうか?

4

1 に答える 1

1

データをそのまま返す必要があります。

public ActionResult GetManufacturers()
{          
    string restURL ="http://mytestserver/myapi/Manufacturers";
    using (var client = new WebClient())
    {               
        var data = client.DownloadString(restURL); 
        return Content(data, "application/json");                      
    }   
}
于 2012-05-30T14:37:33.747 に答える