【发布时间】:2015-09-07 10:28:09
【问题描述】:
我的最终目标是根据从我的数据库接收到的数据动态更新我的 html 页面上的无序列表,而无需重新加载页面。
我的第一步是从数据库中获取列表
<div ng-init="scenarioid='@Model.SCENARIOID'">
将尝试在我的 .cshtml 页面的测试 div 中执行 ng-repeat
<div id="test">
</div>
我在将数据传回我的 MVC 控制器时遇到问题。
我试过了
'@Url.Action("ConfirmedCorrectList", "Content", "$scope.scenarioid")'
'@Url.Action("ConfirmedCorrectList", "Content", "{{scenarioid}}")'
'@Url.Action("ConfirmedCorrectList", "Content")/$scope.scenarioid'
'@Url.Action("ConfirmedCorrectList", "Content")/{{scenarioid}}'
由于 MVC 控制器始终将 string scenarioID 视为 null,因此似乎没有任何工作,现在我试图将 data: something 传递回我的 MVC 控制器,但它再次始终显示为 null。
我请求帮助理解并帮助将我的变量传递回我的 MVC 控制器,以及一种确认数据已成功返回到我的 cshtml 页面的方法。
这是我的 Angular 模块
angular.module('Details', ['ngRoute', 'ngResource'])
.controller('DetailsMainCtrl', ['$scope', '$http', '$window', function ($scope, $http ,$window) {
$scope.$watch('pfsscenarioid', function () {
console.log('AngularJS $scope.pfsscenario ID: ' + $scope.pfsscenarioid);
});
$scope.$evalAsync(function () {
$http({
method: 'GET',
url: '@Url.Action("ConfirmedCorrectList", "Content")',
data: { scenarioID: {{scenarioid}} }
})
.success(function (data, status) {
$scope.status = status;
$scope.data = data;
$scope.$watch('data', function () {
console.log('Data Returned by $http: ' + $scope.data);
});
}).error(function (data, status) {
$scope.data = data || "Request failed";
$scope.status = status;
});
我的控制器上的 JsonResult
public JsonResult ConfirmedCorrectList(string scenarioID)
{
//find the scenario by scenario ID
Scenario Scenario = db.Scenarios.Find(scenarioID);
//create object of all who have confirmed the scenario correct so far.
var result = Scenario.ConfirmedCorrectBies
.OrderBy(x => x.DateConfirmed);
//return JSON object of result
return Json(result, JsonRequestBehavior.AllowGet);
}
编辑:将变量场景更新为场景ID,因为它应该是范围名称。
【问题讨论】:
标签: jquery asp.net-mvc angularjs asp.net-mvc-5