2016-08-12 4 views
0

コードは機能しますが、それを見て、それを見て成長する必要がある可能性があります。これら3つの別々のものをオブジェクトにパッケージ化し、それらをMVCコントローラに渡すことは可能ですか?私のデータをオブジェクトに変換し、asp.net MVCコントローラに渡します

このアップデートの前は、渡された文字列の単純な配列でした。

私は使用する必要がありますwindow.open()私はここでさまざまな方法でこれを行う必要があることを試みましたが、これは動作する唯一のものです。

$('#print_quote').on('click', function (e) { 
    debugger; 
    // object one 
    var ProgramDescription_0 = $('#pricing-box-0 .pricing-box .pricing-title h3').text(); 
    var PlanDescription_0 = $('#pricing-box-0 .pricing-box .pricing-title small').text(); 
    var RetailCost_0 = $('#pricing-box-0 .pricing-price span').text(); 
    var RateID_0 = $('#pricing-box-0 .pricing-price span').attr('id').replace('totalCost-', ''); 
    // object 2 
    var ProgramDescription_1 = $('#pricing-box-1 .pricing-box .pricing-title h3').text(); 
    var PlanDescription_1 = $('#pricing-box-1 .pricing-box .pricing-title small').text(); 
    var RetailCost_1 = $('#pricing-box-1 .pricing-price span').text(); 
    var RateID_1 = $('#pricing-box-1 .pricing-price span').attr('id').replace('totalCost-', ''); 
    // object 3 
    var ProgramDescription_2 = $('#pricing-box-2 .pricing-box .pricing-title h3').text(); 
    var PlanDescription_2 = $('#pricing-box-2 .pricing-box .pricing-title small').text(); 
    var RetailCost_2 = $('#pricing-box-2 .pricing-price span').text(); 
    var RateID_2 = $('#pricing-box-2 .pricing-price span').attr('id').replace('totalCost-', ''); 

    var url = '@Url.Action("PrintComparison", "Quote", new { selectedPlans = "__plans__" })'; 
    window.open(url.replace('__plans__', plans)); 
}); 

MVCコントローラ

public ActionResult PrintComparison(string ProgramDescription_0, string PlanDescription_0, string RetailCost_0, int RateID_0) 
{ 
// Do stuff 
} 

それがオブジェクトにこれらをオンにし、それらを待っている私のMVCコントローラへwindow.openを使用してそれらを渡すことができます:ここで

は、コードがありますか?

+0

をあなたのメソッドを呼び出しますか'PrintComparison()'メソッドのシグネチャは何ですか? –

+0

おそらく 'ajax'を使う方が適切でしょうか? – Hackerman

+0

@StephenMuecke計画は、それが古い方法で使用されていたためです。シンプルな配列の文字列でプランを塗りつぶし、最後の行に置き換えました。 MVC側で更新しています。 –

答えて

0

あなたの配列を渡します。

var arr = []; 
arr.push({ 
    ProgramDescription: "", 
    PlanDescription: "", 
    RetailCost: 0.00, 
    RateID: -1 
}); 

あなたの中に `plans`は、コードの最後の行は何ですか?POST

経由
$.post('@Url.Action("PriceComparision", "Quote")', arr, function(html){ 
    //use jqueryui Dialog Widget to display the resultant HTML 
}); 
+1

' var arr = []; 'を意味すると思いますか?さもなければ、2行目は失敗します... –

+0

あなたは正しいです、編集済み – Steve

+0

それは私のコントローラに入っていますが、実際のページでは404エラーを返します。 '新しいViewAsPdf(" PrintComparison "、モデル)を返します。Pag​​eOrientation = Orientation.Landscape、PageSize = Size.Letter、CustomSwitches = pdfsettings};は上記のコントローラの行です。 window.openでうまく動作します –

関連する問題