2016-06-23 20 views
2

に未定義のプロパティの成功を読み取ることができません、私はのクリック時にMVCコントローラのアクションメソッドでボタン格納したデータを送信する方法があります。これは私がその後の呼び出しでMVCコントローラ内の他の方法で再利用したいデータを保存したは、コントローラAの角度JS

$scope.groupmembership.submit = function() { 
    if ($scope.groupMembershipUserInputForm.$valid) { 
     $scope.groupmembershipUploadParams = { 
      "chapterCode": $scope.groupmembership.chapterCode, 
      "createdDate": $filter('date')(new Date($scope.groupmembership.createdDate), 'MM/dd/yyyy'), 
      "endDate": $filter('date')(new Date($scope.groupmembership.endDate), 'MM/dd/yyyy') 
     }; 

     UploadDataServices.getGroupMembershipUploadParams(
      $scope.groupmembershipUploadParams) 
      .success(function (result) { 
       $rootScope.$emit(
        'validateUploadedFilesEvent', 
        $scope.groupmembershipUploadParams 
       ); 
      }); 
    } 
} 

UploadDataServices.getGroupMembershipUploadParams

getGroupMembershipUploadParams: function(uploadParams){ 
    $http.post(BasePath + "uploadNative/setGroupMembershipUploadParams", uploadParams, { 
     headers: { 
      "Content-Type": "application/json", 
      "Accept": "application/json" 
     } 
    }).success(function (result) { 
     console.log(result); 
    }) 
}, 

uploadNativeMVCコントローラ

public async Task<JsonResult> setGroupMembershipUploadParams(GroupMembershipUploadParams arg) 
{ 
    TempData["GroupMembershipUserUplaodDetails"] = arg; //Save the data for later use 
    var result = new JsonResult(); 
    result.Data = "Success"; // Return a Excel Upload Limit Exceeded 
    result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; 
    return result; 
} 

私は戻って任意の応答をしたいが、念のmethodB(作らない)MVCのデータが保存された後、私は成功応答

UploadDataServices.getGroupMembershipUploadParams(
    $scope.groupmembershipUploadParams) 
    .success(function (result) { 
     $rootScope.$emit('methodB', $scope.groupmembershipUploadParams); 
    }); 

を取得した後、角度が実行中で、私はこの結果を知っているイベントを発射しましたMVCの作成で.DATAは、

var result = new JsonResult(); 
result.Data = "Success"; // Return a Excel Upload Limit Exceeded 
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet; 
return result; 

が、方法がわから

作る方法 冗長ですTempDataをが保存された後にのみ件の
$rootScope.$emit('methodB', $scope.groupmembershipUploadParams); 

火災。

UploadDataServices.getGroupMembershipUploadParams(
    $scope.groupmembershipUploadParams) 
    .success(function (result) 

エラーが発生しました。もっとうまくいくことができますか?私は冗長なコード行がたくさんあることを知っています。

ありがとうございます。

答えて

4

メソッドにreturnがない場合は、undefinedを返します。だからこそあなたは誤りを抱えています。答えを

getGroupMembershipUploadParams: function(uploadParams){ 
    return $http.post(
     BasePath + "uploadNative/setGroupMembershipUploadParams", 
     uploadParams, 
     { 
      headers: { 
       "Content-Type": "application/json", 
       "Accept": "application/json" 
      } 
     }) 
     .success(function (result) { 
      console.log(result); 
     }); 
}, 
+0

おかげで、ちょうど戻って、イベントがMVC TempDataをに保存のみ成功した後に解雇することを確認するためにMVCからのリターンのすべてが必要です:

は固定しますか?それを避けることはできますか? – StrugglingCoder

+0

あなたが何を求めているのか分かりません。この部分のために:_しかし、MVC_からのすべての返り値、文字列 '' Success ''を返すことは無駄ですか?それは本当に心配するものではありませんが、もしあなたが望むなら、あなたはおそらく 'ヌル'応答を返すことができます。 – JLRishe

+0

はい、私はそれをハードコーディングしています。私はちょうどMVCでの成功した保存の後で、私は$ rootScope、$ emitを行うことができます。だからこのアプローチは大丈夫ですか? – StrugglingCoder