クライアント側 (JavaScript) では windows.location.hash を使用できることはわかっていますが、サーバー側からアクセスする方法が見つかりません。私は asp.net を使用しています。
ベストアンサー1
ASP.Net ポストバック全体で URL ハッシュを保持する必要があった状況がありました。ブラウザはデフォルトではハッシュをサーバーに送信しないため、これを行う唯一の方法は JavaScript を使用することです。
フォームが送信されると、ハッシュ (
window.location.hash
) が取得され、サーバー側の非表示入力フィールドに保存されます。これを、urlhash
後で簡単に見つけられるように、ID が " " の DIV に配置します。サーバー上この値を使用して何かを行う必要がある場合は、この値を使用できます。必要に応じて変更することもできます。
ページ読み込み時クライアント側この隠しフィールドの値を確認してください。自動生成された ID は不明なので、フィールドが含まれている DIV で検索する必要があります。はい、ここで .ClientID を使用していくつかのトリックを実行することもできますが、このすべての Javascript を外部ファイルに配置して汎用的に使用できるため、ラッパー DIV を使用する方が簡単であることがわかりました。
隠し入力フィールドに有効な値がある場合は、それを URL ハッシュ (
window.location.hash again
) として設定し、その他のアクションを実行します。
フィールドの選択などを簡素化するために jQuery を使用しました。全体として、値を保存するための jQuery 呼び出しと、値を復元するための jQuery 呼び出しがいくつか必要になります。
送信前に:
$("form").submit(function() {
$("input", "#urlhash").val(window.location.hash);
});
ページの読み込み時:
var hashVal = $("input", "#urlhash").val();
if (IsHashValid(hashVal)) {
window.location.hash = hashVal;
}
IsHashValid()
「undefined
」や、処理したくないその他のものをチェックできます。
$(document).ready()
また、もちろん適切な使用を心がけてください。