好的,我相信我已经接近了这个工作但似乎无法识别我的WebAPI控制器,除非我在URI中传递参数。
我有...... 像这样使用$ resource的Angular ......
for (n in branches_numbers.values()) {
buildNum = n.toString()
step([$class: 'CopyArtifact',
filter: 'Tests_Outputs/*.log',
fingerprintArtifacts: true,
flatten: true,
projectName: childJobName,
selector: [$class: 'SpecificBuildSelector',
buildNumber: buildNum],
target: '.']);
}
收集网址并传递此数据并调用WebAPI的服务......
SaveData:$ resource(myURL,{})
WebAPI控制器......
var savePromise = myService.common.SaveData.save({},{ ID: saveObj.ID, Year: saveObj.Year, typeID: saveObj.TypeID, ObjectList: JSON.stringify(saveCollection) }).$promise;
如果我没有在查询字符串中传递值,则无法找到ApiController。
任何帮助表示赞赏!!
答案 0 :(得分:0)
好的,我已经成功使用POST在AngularJS中发送数据......以下我是怎么做到的......
取了我传递的参数并将它们放在javascript对象中......
var objData = {
Var1: Var1Value,
Var2: Var2Value,
Var3: Var3Value,
Var4: Var4Value
}
将该对象传递给"保存"请求... 强>
var savePromise = myService.common.SavePostData.save({}, objData).$promise;
我在构建呼叫并执行的服务中拥有我的资源...... (function(angular,undefined){ '使用严格的';
angular.module('mynamespace.myservice', [
// Angular
'ngResource'
])
.factory('myservice', ['$resource', function ($resource) {
return {
common: {
SavePostData: $resource(myURL, {})
}
};
}]);
}(角));
<强> OKAY !!现在最重要的部分!!! 在WebApi方面,您必须为POST创建数据模型以映射到... 〜注意&#34;案例&#34;变量必须匹配!
using System.Collections.ObjectModel;
namespace myNamespace {
public class DataModelThatMatchesRequest {
public int Var1 {
get;
set;
}
public int Var2 {
get;
set;
}
public int Var3 {
get;
set;
}
public Var4 {
get;
set;
}
}
}
现在创建一个使用您的数据模型的ApiController ...... 〜注意你必须有装饰&#34; [HttpPost]&#34;和行动装饰&#34; [FromBody]&#34;
public class SaveObjectController : ApiController {
[HttpPost]
public Objects POST([FromBody] DataModelThatMatchesRequest saveRequest)
{
Do some stuff with "saveRequest"
}
我希望这可以帮助你!!