很抱歉,我对Angular(以及整个ASP.net环境)有点陌生。我已经创建了从API .net服务检索的客户列表。然后,我在每个复选框旁边放置复选框,以指示它们是活跃客户还是非活跃客户。想法是,当您滚动列表时,可以选中这些框,然后按“保存”,这将更新客户活跃或不活跃的数据库。这是我的尝试:
app.controller("CustomersController", function ($scope, $http) {
$http.get(serviceURL + "/customers")
.then(function onSuccess(response) {
$scope.customers = response.data;
}, function onError(response) {
//~
});
$scope.saveCustomers = function () {
$http.post(serviceURL + "/customers", $scope.customers)
.then(function onSuccess(response) {
//~
}, function onError(response) {
//~
});
};
});
在这里,通过在HTML文件中按下保存按钮来调用saveCustomers,并在范围内更改了选中标记的值。发布此消息时,我收到400 HTTP响应(即使它返回的对象列表在控制台中看起来也不错)。我什至试图将JSONconvert排除在外。然后,我进行了迭代,并尝试为$ scope.customers中的每个对象在循环中进行发布。但是,这返回了409 HTTP响应,我不确定这对我的帖子意味着什么。我已经尝试过PUT,但标头中不允许这样做。我试图通过将其添加到Web.config文件中来解决此问题:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule"/>
</modules>
....
以及在IIS管理器中更改处理程序映射,以便ExtensionlessUrlHandler-Integrated-4.0包含动词PUT和DELETE。 我有一个“添加客户”页面,该页面对表单上的单个对象使用了一个帖子,并且效果很好。我已经花了几个小时尝试所有可能的方法,但是我无法让这个简单的方法起作用。另外,这是我的HTML供参考:
<tr ng-repeat="a in customers | filter:txtFilter">
<td>
{{a.customer_id}}
</td>
<td>
{{a.customer_name}}
</td>
<td>
{{a.customer_phone}}
</td>
<td>
<input type="checkbox"
name="selectedInactives[]"
value="{{a.inactive}}"
ng-checked="a.inactive"
ng-click="toggleSelection(a.inactive)"
ng-true-value="jQuery(document).ready()
"
ng-false-value="{{0}}"
/> {{a.inactive}}
</td>
</tr>
(注意:不用担心将ng-true-value或false值设置为整数值,这没有什么区别)
答案 0 :(得分:0)
尝试一下:
$http.post(serviceURL + "/customers",{customrers: $scope.customers}).then();
将prop名称(而不是“客户:”)放到您的后端函数中。
答案 1 :(得分:0)
请勿在{{1}}指令中使用插值({{ }}
)。带有双花括号的插值会将AngularJS表达式转换为字符串。
要使用数字值:
ng-*-value