私の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' }
});
2 番目のデータが最初のデータを上書きするため、これは機能しません。私もこれを試しました:
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
};