这是我见过的最奇怪的事情。我试图将从Angular Directive收集的数据发布到Kendo Grid中的MVC Controller。 这是网格的DataSource:
dataSource: new kendo.data.DataSource({
type: "aspnetmvc-ajax",
transport: {
read: {
url: "/SSQV4/SSQV5/Search/SubmitCriteria",
data: { form: $scope.form }
}
},
schema: {
data: "Data",
total: "Total"
},
pageSize: 25,
serverPaging: true,
serverFiltering: true,
serverSorting: true
}),
以下是MVC Controller方法的第一行:
public async Task<ActionResult> SubmitCriteria([DataSourceRequest]DataSourceRequest command, ContractorSearchViewModel form)
问题,虽然$scope.form
有数据,但当它到达控制器时它是null,除非我明确设置每个值。如果我设置:
$scope.form.UnitID = "558" in my Angular Controller, when it hits my MVC Controller the Value will be there. However, if `$scope.form.UnitID` is set by user selection in the Directive, when my MVC Controller is hit, UnitID is null.
为了更好地解释这个问题,虽然价值如下:
var unitID = $scope.form.UnitID;
$scope.form.UnitID = unitID;
是unitID =“558”,如果我明确地将它设置为这样,“558”只会进入MVC控制器:
$scope.form.UnitID = "558"
有谁知道我在这里缺少什么?当用户在多个选择列表中选择时,我无法手动设置所有值。
我知道它与$scope
有关,因为如果我用“F5”“刷新”页面,所有信息都会发送到MVC控制器。我尝试使用$scope.$apply()
,但我收到了“正在进行摘要”错误。
非常感谢任何帮助!!!