我的 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' }
});
我可以用以下内容填充 MyModel:
data: transportDocumentData.TDShipment,
或 MyModel 中存在的 MyList :
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
};