0

私のアプリケーションでは、次の形式のURLがあります

www.abc.com/mypage#yourId=ASDF2345

asp.net、c#のRequestオブジェクトからyourIdパラメーターの値を読み戻すにはどうすればよいですか?

もしそうだったら

www.abc.com/mypage?yourId=ASDF2345

次に、RequestオブジェクトのQueryStringコレクションからこれを取得します。ただし#、yourIdパラメーターの前にあり、QueryStringコレクションによって提供されていません。

4

3 に答える 3

5

参照しているハッシュは、実際にはブラウザによってサーバーに送信されません。これはクライアント側のみであり、C#はそれを「見る」ことができません。

その値が必要な場合は、Javascriptのdocument.location.hashプロパティを使用して取得し、AJAXを介してサーバーに送り返すことができます。

これは、ハッシュの場所の変更を検出し、イベントをトリガーできるjQueryBBQまたはjQueryAddressによって簡単になります。

于 2010-09-13T04:49:15.793 に答える
2

に続くURLの部分は#「フラグメント識別子」と呼ばれ、サーバー上のこの情報にアクセスする方法はありません。実際、サーバーに送信されることはありません。仕様では、URLの残りの部分にあるドキュメントのフラグメントを識別するために、フラグメント識別子が予約されています。この仕様では、実際には、ブラウザがHTTPリクエストでURLを送信する前に、URLからフラグメントIDを削除する必要があります。

javascriptを介してブラウザでフラグメントIDにアクセスできます。プロパティはと呼ばれdocument.location.hashます。

于 2010-09-13T04:51:48.103 に答える
1

jQueryを使用してクライアント側で読み取り、サーバーに手動で転送します。

例:

var url = "www.abc.com/mypage#yourId=ASDF2345";
var hash = url.substring(url.indexOf('#')); // '#yourId=ASDF2345'

小切手

また、ユーザーは必要に応じてハッシュを変更できることを忘れないでください。使用する前にハッシュを確認してください。

于 2010-09-13T04:54:16.190 に答える