AngularJs
我很难过。它在某些情况下适用于我,当我尝试更改项目的模板时,它不再起作用。这是场景 - 我在ASP.NET MVC
中有一个控制器,它以Json
格式返回产品列表,最后我使用AngularJs
控制器调用此控制器,如下所示:
C#:
public JsonResult GetProducts()
{
var result = (from c in db.Products
select new { c.ProductName, c.Price }).ToList();
return Json(result, JsonRequestBehavior.AllowGet);
}
AngularJs :
var app = angular.module('app', []);
app.controller('ProductController', function ($scope, ProductService) {
$scope.Products = null;
ProductService.GetProducts().then(function (d) {
$scope.Products = d.data;
}, function () {
alert('Failed');
});
});
app.factory('ProductService', function ($http) {
var factory = {};
factory.GetProducts = function () {
return $http.get('/Product/GetProducts');
}
return factory;
});
在用户界面中,我使用了以下内容:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Get Products</title>
<script src="~/Scripts/angular.js"></script>
<script src="../AngularFile/AddToCart.js"></script>
</head>
<body>
<div>
<h2>Get Products</h2>
<div ng-app="app" class="container">
<br /><br />
<br /><br />
<input type="text" ng-model="name" />
<h1>{{ name }}</h1>
<div ng-controller="ProductController">
<table class="table table-responsive" ng-repeat="m in Products">
<tr>
<td>{{ m.ProductName }}</td>
<td>{{ m.Price }}</td>
</tr>
</table>
</div>
</div>
</div>
</body>
</html>
我得到的输出是:
我不确定我做错了什么。在我之前的项目中,使用相同的代码,它正确地显示了产品,但是现在,我正在以Json
格式获取数据。这是常见的,之前有人这样面对吗?
注意:如果我将方法类型从JsonResult
更改为ActionResult
,则不会显示任何内容。