【发布时间】:2016-01-03 21:02:57
【问题描述】:
对不起,如果我做错了什么,我是新来的'^^
我目前正在从事一个使用 MVC 构建网站的学校项目。 我正在尝试使用 Json 对象和 angularJS 从数据库中加载对象。
我在一个名为“GetProductsByJson”的控制器中有一个操作,它返回一个包含产品列表的 Json 对象。这是行动:
public ActionResult GetProductsByJson()
{
HomeModel homeModel = new HomeModel();
DataLayer prodDal = new DataLayer();
homeModel.productList = prodDal.Products.ToList<Product>();
return Json(homeModel.productList,JsonRequestBehavior.AllowGet);
}
它自己的动作很好(我单独测试了它)但是当我尝试在角度脚本中使用它时它只是不起作用(它甚至没有进入方法)。
这是角脚本:
<script>
var app = angular.module("myProduct", []);
app.controller("ProductViewModel", function ($scope,$http) {
$scope.Product = {
"prodName": "",
"price": "",
"amount": "",
"serial": "",
"lastUpdate": "",
"pic": ""
};
$scope.Products = {};
$scope.LoadProducts = function () { //load data from the server
debugger
$http({ method: "GET", url: "LoadProducts" }).
success(function (data, status, headers, config) {
$scope.Products = data;
});
};
$scope.LoadProducts();
});
</script>
我尝试在 RouteConfig 中路由操作,但没有任何效果。
好吧,我真的很抱歉问题解决了。
我不得不插入动作的完整网址。
【问题讨论】:
-
在浏览器中加载开发人员工具栏,查看是否正在向服务器发出请求(在“网络”选项卡中)。如果是这样,服务器返回什么?当您写
url: "LoadProducts"时,这将向/LoadProducts发出请求。您确定您的 MVC 应用程序会正确响应此类路由吗? -
你的角度有没有被引导?
-
太多未知数和可怕的问题描述。使用浏览器控制台中的调试工具进行进一步调查
-
显示调用方法的 html。此外,当您说“我有一个方法 LoadProducts”时,它会让人感到困惑。您的 Angular 和 Server 方法都称为 LoadProducts。所以,当你说“它不去那个方法”时——它不去那个方法?
标签: javascript angularjs json asp.net-mvc