我正在尝试将一些表单变量发送到Web服务。 Web服务假设返回我想填充为网格的JSON。我的服务很好,我已经测试过了。
我的控制器看起来像这样
var postUrl = 'schedule.asmx/getSchedulerGrid';
$scope.getSchedulerGrid = function() {
$http.post(postUrl, {
type: $scope.selectedType,
branchId: $scope.selectedBranch
}).success(function(responseData) {
var myjson = JSON.parse(responseData);
$scope.scheduleGrid = myjson;
console.log($scope.selectedType);
console.log($scope.selectedBranch);
});
}
$scope.selectedType
和$scope.selectedBranch
正在正确分配值。
然而,当我运行程序,即填写类型,分支并点击带有ng-click
的Go时,我收到这样的错误
System.InvalidOperationException: Missing parameter: type.
at System.Web.Services.Protocols. ValueCollectionParameterReader.Read(NameValueCollection collection)
at System.Web.Services.Protocols.UrlParameterReader.Read (HttpRequest request)
我的web.config有
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
我的网络服务是这样的
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string getSchedulerGrid(int type, string branchId)
{
JavaScriptSerializer js = new JavaScriptSerializer();
Context.Response.Clear();
Context.Response.ContentType = "application/json";
.....
}