私はMVCアプリケーションを持っています。あるページには、ブートストラップテーブルを表示する部分的なビューがあります。私はテーブルの行がダブルクリックされたときにトリガされるいくつかのJavaScriptコードを持っています。このコードは、ダブルクリックされた行からいくつかの値を取得し、URLを構築してそのURLにナビゲートします。QueryStringを使用せずにパラメータを渡す
これはうまくいきますが、私が作成した方法では、URLにクエリーストリングとしてデータが表示されます。クエリーストリングを使わずにナビゲートするにはどうすればいいですか?ああ、可能であれば、新しいウィンドウ/タブへのナビゲーションが必要です。
ダブルクリックのための私のjavascriptのコードは次のとおりです。
$mTable.on('dbl-click-row.bs.table', function (e, row, $element) {
var cod = $('#hdCOD').val();
var mv = mGetSelectedRow().CMonth;
var yv = mGetSelectedRow().CYear;
var diff_cv = moment.utc(cod).diff(moment.utc(yv + '-' + pad(mv, 2) + '-' + '24'), 'months', true);
var plcf = '';
switch(true) {
case (diff_cv >= 2):
plcf = 'past';
break;
case (diff_cv >= 1 && diff_cv < 2):
plcf = 'last';
break;
case (diff_cv >= 0 && diff_cv < 1):
plcf = 'current';
break;
case (diff_cv < 0):
plcf = 'future';
}
var url = 'ClaimMonth/ViewMonth?pn=' + mGetSelectedRow().Cpid + '&cm=' + mv + '&cy=' + yv + '&mt=' + plcf + '&cod=' + cod;
window.open(url, '_blank');
})
部分図は、かみそりの構文を使用して呼び出されます。
Html.RenderAction("GetSummaryForAdmin", New With {Key .pn = Model.PersonelNo})
が、私はそれを模倣JavaScriptで同等の機能を見つけることができないようNew With {Key .pn = Model.PersonelNo}
これがこれを行う方法であるかどうかもわかりません。私はajax呼び出しについて考えましたが、私はこれを新しいウィンドウ/タブとして開くことはできません。
助けてください。ネットワーク]タブを使用して開発ツール(クローム/ IEでF12)で、私は電話を見ることができる私は私がしたい文書を与える以下のajax.post方法を見つけた
UPDATE
...ドキュメントをプレビューすると、データが表示されます。しかし、ページはブラウザに表示されません。
新しいウィンドウ/タブで開くことは必須条件ではありませんが、持っているとよいでしょう。 ...
$.ajax({
type : "post",
url : "ClaimMonth/ViewMonth",
data : {pn: mGetSelectedRow().Cpid, cm: mv, cy: yv, mt: plcf, cod: cod },
success : function(response) {
window.open();
},
error : function(xhr) {
console.log("error"+xhr.status);
},
complete : function() {
}
});
私の新しいコードは置き換え...
//var url = 'ClaimMonth/ViewMonth?pn=' + mGetSelectedRow().Cpid + '&cm=' + mv + '&cy=' + yv + '&mt=' + plcf + '&cod=' + cod;
//window.open(url, '_blank');
と私は読んだ場合、Request.QueryString
あなたはパラメータを使用してナビゲーションをしたい場合は、かなり多くのあなたは、クエリ文字列を使用する必要があります。ページ間を移動してデータを送信する他の唯一の方法は、POSTでフォーム提出を使用することです。そして、別のタブで結果を開くことができるかどうかはわかりません。もちろん、好奇心を持ったユーザーであっても、(ブラウザーツールやその他の適切なソフトウェアを介して)ネットワークを見てPOSTで渡されているパラメーターを簡単に確認することができます。なぜこのデータを非表示にしたいのですか?あなたが隠そうとしているすべての値がどこかのページで利用可能であるように見えます。 – ADyson
@ADyson correct ..値は機密ではありませんが、顧客はクリーンなURLを好む。私はPostを使っていくつかのコードを見てきましたが、結果は表示されません。私の更新を見てください – Mych
'window.open();'は内容のない空白のウィンドウを開くだけです。面白い所見では、URLバーにあるものに気付いたユーザー/顧客はいません。(テストシステム上にあるかどうかを気付かない場合もあります。生きているもの)、それがきちんとしているかどうか気にすることは決して気にしないでください。 – ADyson