Angular という名前のコントローラー (AngularJS も使用しています) を備えた MVC アプリケーションがあり、GetQuestion というアクションがあります。そのアクションは、次のような JsonResult を返します (Chrome から取得):
{"game":{"Title":"Diablo III","ImgPaths":["d31.jpg","d32.jpg"]},"Answers":["Diablo III","World of Tanks","Need for Speed"]}
私のJS関数は次のようなものです:
var request = $.ajax({
url: "/Angular/GetQuestion",
dataType: "json",
type: "post",
success: (function (data) { alert(data); })
});
しかし、上で書いた Json の代わりに、アラート ウィンドウには [object Object] しか表示されません。
アップデート
わかりました、それは修正されました。ただし、ご想像のとおり、私の目標はこのデータをアラート ボックスに表示することではなく、何らかの方法で使用することです。これがAngularのコントローラーです
関数 QuestionCtrl($scope) {
var request = $.ajax({
url: "/Angular/GetQuestion",
dataType: "json",
type: "post",
success: function (data) {
$scope.answers = JSON.stringify(data.Answers);
$scope.imgPath = JSON.stringify(data.game.ImgPaths[0]);
}
});
}
そしてビュー:
<div ng-controller="QuestionCtrl">
<img class="quizImage" src="~/Gallery/{{imgPath}}"/>
@using (Html.BeginForm("Answer", "Angular", FormMethod.Post))
{
<p ng-repeat="answer in answers"><input type="radio" name="game" value="{{answer}}"/> {{answer}}</p>
<p><input type="submit" value="Answer"/></p>
}
</div>
そして、私にはイメージも質問もありません。コントローラーでそれらをハードコーディングすれば、問題ありません。