我的C#模型:
public class MyModel
{
public string MyString { get; set; }
public int MyInt { get; set; }
public List<MyList> MyList { get; set; }
}
public class MyList
{
public string MyListString { get; set; }
public int MyListInt { get; set; }
}
我的C#方法:
[HttpPost]
public void SomeMethod(MyModel MyModel)
{
我的angularjs $ http:
$http({
url: "/api/SomeCtrl/SomeMethod",
method: "POST",
data: // WHAT TO PUT HERE?
headers: { 'Content-Type': 'application/json' }
});
我可以用:
填充mymodeldata: transportDocumentData.TDShipment,
或mylist,它在mymodel中带有:
data: JSON.stringify({ Package: transportDocumentData.TDShipment.packageData }),
,但我不知道如何填充它们。我尝试了这两个选项:
$http({
url: "/api/SomeCtrl/SomeMethod",
method: "POST",
data: myModelData.MyModel,
data: JSON.stringify({ MyList: myModelData.MyModel.myListData }),
headers: { 'Content-Type': 'application/json' }
});
它不起作用,因为第二个数据覆盖了第一个数据。我也尝试了:
var abc = myModelData.MyModel;
$http({
url: "/api/SomeCtrl/SomeMethod",
method: "POST",
data: JSON.stringify({ MyList: myModelData.MyModel.myListData }), abc
headers: { 'Content-Type': 'application/json' }
});
但是在这种情况下,只有myList填充。
我试图修改这样的myMethod:
[HttpPost]
public void SomeMethod(List<MyModel> MyModel)
{
结果甚至更糟。
那么,如何正确完成?
编辑:我忘了包括这些:
$scope.myListData = [{ myListString: "bar", myListInt: 5 }];
$scope.myData = {
myString: "foo",
myInt: 3,
myListData: $scope.myListData
}
var myModelData = {
MyModel: $scope.myData
};
您需要创建一个JSON对象,将匹配您的C#模型并发送 - 仅此而已。WebAPI将完成这项工作(模型绑定(。
所以回答您的问题:
data://在这里放置什么?
创建/填充Angular的JSON模型:
$scope.myListData = [{ myListString: "bar", myListInt: 5 }];
$scope.myData = {
myString: "foo",
myInt: 3,
myListData: $scope.myListData
};
直接传递槽:
$http({
url: "/api/SomeCtrl/SomeMethod",
method: "POST",
data: $scope.myData
});
这是您问题的答案吗?