2017-03-31 15 views
-3

viewmodelを使用してangularjsからasp mvcコントローラに複数のパラメータを渡したいが動作しない。参考までに、htmlページの画像を見てください。 Html page複数のパラメータをangularjsからasp mvcコントローラに渡す

私はOrderIdとIdとRatingの配列を渡したいと思っています。ここで

はhtmlコードです:ここで

Html Code

は私angularjsコントローラと工場出荷時のコードです:

viewmodel classes

:ここ

Angular Code

は2つのviewmodelクラスであります あなたが見ることができるように

enter image description here

私はのviewmodelからたOrderDetailsを取得することはできませんよ:

viewmodel classes

はここMVCコントローラです。だからそれをどうやって得るの?

+0

ブラウザでデバッグするとき、そのAJAX呼び出しを行うときに 'd'の内容は何ですか? – David

+0

EntityFrameworkを使用していますか?もしそうなら、 "OrderDetails"は別のテーブルから来ますか?新しい:{ OrderIdで:テスト ProductRating:{ 私はよく、私は以下を参照してくださいすることができます –

+0

...それが原因イーガーロードにそれを持ち出すためには 'あなたが'含める(X => x.OrderDetails)を使用する必要があると考えています0:2 1:4 2:3 } } @david –

答えて

0

次のようにしてください。一方、重複データを特定します。

var app = angular.module('myApp', []); 
 
app.controller('testCtrl', function($scope) { 
 
$scope.company = [{id:1, name:"Sole Trader", rating:4},{id:2, name:"Pvt Ltd", rating:3},{id:3, name:"LLC", rating:5}]; 
 
$scope.Newrat = []; 
 
    $scope.addRatingbyId = function(pushdata){ 
 
    if($scope.Newrat.length != 0){ 
 
    angular.forEach($scope.Newrat, function(value, index){ 
 
    if(value.id == pushdata.id){ 
 
    $scope.Newrat[index].rating = pushdata.rating; 
 
    }else{ 
 
    $scope.Newrat.push(pushdata); 
 
    } 
 
    }); 
 
}else{ 
 
$scope.Newrat.push(pushdata); 
 
} 
 
    } 
 
    $scope.sendRating= function(){ 
 
    //send $scope.Newrat 
 
    console.log($scope.Newrat); 
 
    } 
 
});
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<body> 
 

 
<div ng-app="myApp" ng-controller="testCtrl" > 
 
{{company}} 
 
<table><tr><th>id</th><th>Name</th><th>Rating</th> 
 
</tr> 
 
<tr ng-repeat="com in company"> 
 
<td>{{com.id}}</td> 
 
<td>{{com.name}}</td> 
 
<td> 
 
<input type="text" ng-model="com.rating" ng-change="addRatingbyId(com)"> 
 
</td> 
 
</tr></table> 
 
<input type="submit" ng-click="sendRating()"> 
 
{{Newrat}} 
 
</div> 
 

 
</body> 
 
</html>

+0

これで、com.idを取得できましたが、まだ複数の$ scopeデータを工場に送信して受信することができませんmvcコントローラ私はこのようなことをしたい$ scope.click = function(){ testfac.submit($ scope.Company、$ scope.Newrat).then(関数(d){ // do something }) }; JSON.stringify({t:$ scope.Company、o:$)は、次のようにして作成されます:fac.submit = function(d){ return $ http({ url: '/ Test/Submit'、 メソッド: 'POST'、 スコープ.Newrat})、 }); }; return fac –

+0

コントローラ自体を操作しますか?次のようにします$ scope.click = function(){var data = JSON.stringify({t:$ scope.Company、o:$ scope.Newrat}); testfac.submit(data).then(関数(d){//何か}}};ファンクション(getData){return $ http({url: '/ Test/Submit'、メソッド: 'POST'、データ:getData)}; –

0

まあ、私はそれを発見しました。

$scope.click = function() { // button click function 
     var data = { 
      OrderId: $scope.new.OrderId, 
      OrderDetails: $scope.Company 
     } 
     testfac.submit(data).then(function (d) { //factory calling 
      console.log(d) 
     }) 
    }; 

異なる$スコープを変数(varデータ)にマージして渡す必要があります。

関連する問題