Saya tahu di sisi klien (javascript) Anda dapat menggunakan windows.location.hash tetapi tidak dapat menemukannya untuk mengakses dari sisi server.
asp.net
url
fragment-identifier
Ricky Supit
sumber
sumber
Jawaban:
Kami memiliki situasi di mana kami harus mempertahankan hash URL di seluruh punggung posting ASP.Net. Karena browser tidak mengirimkan hash ke server secara default, satu-satunya cara untuk melakukannya adalah dengan menggunakan beberapa Javascript:
Saat formulir dikirimkan, ambil hash (
window.location.hash
) dan simpan di bidang input tersembunyi sisi server Masukkan ini ke dalam DIV dengan id "urlhash
" sehingga kita bisa menemukannya dengan mudah nanti.Di server Anda dapat menggunakan nilai ini jika Anda perlu melakukan sesuatu dengannya. Anda bahkan dapat mengubahnya jika perlu.
Pada pemuatan laman pada klien , periksa nilai bidang tersembunyi ini. Anda akan ingin menemukannya dengan DIV yang terkandung di dalamnya karena ID yang dibuat secara otomatis tidak akan diketahui. Ya, Anda dapat melakukan beberapa tipuan di sini dengan .ClientID tetapi kami merasa lebih mudah untuk hanya menggunakan DIV pembungkus karena memungkinkan semua Javascript ini untuk hidup dalam file eksternal dan digunakan secara umum.
Jika bidang input tersembunyi memiliki nilai yang valid, tetapkan itu sebagai hash URL (
window.location.hash again
) dan / atau lakukan tindakan lain.Kami menggunakan jQuery untuk menyederhanakan pemilihan bidang, dll ... semuanya akhirnya menjadi beberapa panggilan jQuery, satu untuk menyimpan nilai, dan yang lain untuk mengembalikannya.
Sebelum mengirim:
Pemuatan halaman:
IsHashValid()
dapat memeriksa "undefined
" atau hal-hal lain yang tidak ingin Anda tangani.Juga, pastikan Anda menggunakannya dengan
$(document).ready()
tepat, tentu saja.sumber
RFC 2396 bagian 4.1:
(penekanan ditambahkan)
sumber
Itu karena browser tidak mengirimkan bagian itu ke server, maaf.
sumber
Mungkin satu-satunya pilihan adalah membacanya di sisi klien dan mentransfernya secara manual ke server (GET / POST / AJAX). Salam Artur
Anda juga dapat melihat cara bermain dengan tombol kembali dan riwayat browser di Malcan
sumber
Hanya untuk mengesampingkan kemungkinan Anda tidak benar-benar mencoba melihat fragmen pada GET / POST dan benar-benar ingin tahu cara mengakses bagian dari objek URI yang Anda miliki dalam kode sisi server Anda, itu berada di bawah Uri.Fragment ( MSDN docs ).
sumber
Solusi yang mungkin untuk permintaan GET:
Format Tautan Baru:
http://example.com/yourDirectory?hash=video01
Panggil fungsi ini ke atas pengontrol atau
http://example.com/yourDirectory/index.php
:sumber