0

私の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
};
4

1 に答える 1

1

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
});


それはあなたの質問に対する答えですか?

于 2017-06-23T13:36:31.363 に答える