0
私が持っているHomeController
の下に次のコントローラメソッド、MVCコントローラのメソッド呼び出しは、代わりにJSON結果の表示HTMLを返す
[HttpGet]
public ActionResult GetStudents()
{
Student std1 = new Student();
List<Student> stdlst = new List<Student>();
std1.Id = 1;
std1.Name = "Emmanuvel";
std1.Age = 25;
stdlst.Add(std1);
Student std2 = new Student();
std2.Id = 2;
std2.Name = "Michael";
std2.Age = 24;
stdlst.Add(std2);
Student std3 = new Student();
std3.Id = 3;
std3.Name = "Hannah";
std3.Age = 22;
stdlst.Add(std3);
return Json(stdlst, JsonRequestBehavior.AllowGet);
}
そして、私は以下のようにAngularjsのAjax機能を使用してこのメソッドを呼んでいる、
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.9/angular.min.js"></script>
<script type="text/javascript">
var app = angular.module('MyApp', [])
app.controller('MyController', function ($scope, $http, $window) {
$scope.ButtonClick = function() {
$http.get('@Url.Action("GetStudents","Home")')
.success(function (data) {
$scope.students = data;
console.log($scope.students);
})
.error(function (data) {
console.log(data);
});
}
});
</script>
残念ながら、console.log
はJSONデータではなく、表示ページのHTMLコードを印刷します。ここにconsole.logの出力があります。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width"/>
<title>Index</title>
</head>
<body>
<div ng-app="MyApp" ng-controller="MyController">
<input type="button" value="Submit" ng-click="ButtonClick()"/>
</div>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.9/angular.min.js"></script>
<script type="text/javascript">
var app = angular.module('MyApp', [])
app.controller('MyController', function ($scope, $http, $window) {
$scope.ButtonClick = function() {
$http.get('/Home/GetStudents')
.success(function (data) {
$scope.students = data;
console.log($scope.students);
})
.error(function (data) {
console.log(data);
});
}
});
</script>
</body>
</html>
私はこのコードで間違ったことを理解してください。
* *はHTMLコード内に*ありますか?それは実際の結果ではなく、例外ページですか?あなたの@ Url.Action()が世話をしていない場合、サーバは何らかの 'route not found'を返します。これはHTMLの開発者"ヘルプ "ページに来ます...ちょっと考えました – Felix
私は持っていますhtmlのボタンだけでAjax関数を呼び出す、コンソールログはそのHTMLコードを返す、私はどのようなログ印刷の質問を更新しました。 –
ActionメソッドのシグネチャをActionResultからJsonResultに変更してクリアします。また、あなたはエリアを使っていませんか? – Saravanan