私はActionResultに値を渡したいが、値の型はguidなので、クエリーストリングとセッションを使いたくないので、URLに表示したくない。Jqueryを使用してTempdataに値を割り当てる方法は?
function ViewDetail(ele) {
var Id = $(ele).attr("OrderID");
@TempData["OrderID"] = Id;
}
私はActionResultに値を渡したいが、値の型はguidなので、クエリーストリングとセッションを使いたくないので、URLに表示したくない。Jqueryを使用してTempdataに値を割り当てる方法は?
function ViewDetail(ele) {
var Id = $(ele).attr("OrderID");
@TempData["OrderID"] = Id;
}
基本的には、このようにすることはできません。サーバー側のオブジェクトをクライアント側のデータに割り当てようとしています。
あなたが行うことができますしかし、アヤックスを使用しているあなたはTempDataをにデータを割り当てるとAjax
Ajaxコードによって、クライアント側からのアクションを呼び出しますAjaxのアクション書く場合:
function ViewDetail(ele) {
var Id = $(ele).attr("OrderID");
$.ajax({
type: "POST",
cache: false,
async: false,
url: '@Url.Action("actionname", "controllername")',
dataType: "json",
data: { Id: Id },
failure: function (jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});
}
希望を助けになる!
(クライアント側では)できません。 'TempData'はサーバ側の値で、javascriptはクライアント側です。値をコントローラメソッドに投稿して値を設定するには、ajaxを使用する必要がありますが、それは意味をなさないでしょう。あなたは何を達成しようとしていますか? –
guidをクエリ文字列に表示したくない特別な理由はありますか? – JamieD77
まず、 'TempData' *はセッションです。それは同じことです。セッションを使用したくない場合は、このために 'TempData'を使いたくないでしょう。第2に、GUIDを公開したくない場合は、オーダーで他の一意の識別子を選択して代わりに使用します。しかしそれはあなたの唯一の選択です。特定の注文は一意のリソースであり、その一意のリソースを特定するには、URLにid * somewhere *のようなものが必要です。 –