0

私のページの 1 つで、ユーザーが年齢ドロップダウン リストから選択した年齢に基づいてコンテンツをフィルター処理できるようにしました。

これが私のコードです。

$('#age').change(function () {
         var ageUrl = "@Request.Url?age=" + $(this).val();

         alert(ageUrl);
         window.location = ageUrl;
     });

ここに問題があります。私はアプリのページにいます。

http:// localhost:60627/apps

初めて、年齢を選択するとリダイレクトされますが、問題ありません。

http:// localhost:60627/apps?age=Middle_School

2 回目は、別のものを選びます。

http:// localhost:60627/apps?age=Middle_School?age=幼稚園

クエリ文字列では、年齢が 2 回表示されました。Request.Url または Request.RawUrl の両方を試しましたが、常にクエリ文字列が含まれています。クエリ文字列なしでページの URL のみを取得するには、何を使用すればよいですか。

4

4 に答える 4

7

これまで実際に使用したことはありませんが、機能します:

 Request.Url.GetLeftPart(UriPartial.Path)

別の方法は次のとおりです。

 String.Format("{0}://{1}{2}",Request.Url.Scheme, Request.Url.Authority, Request.Url.LocalPath)

(ViewContext のデータから) 使用しているコントローラー/アクションがわかっている場合は、@Url.Action を使用してオーバーロードを指定し、完全な URL も生成する http スキーマを強制することができます。

于 2012-05-29T16:05:39.263 に答える
1

Split文字列のメソッドを試してみませんか?

Request.Url.ToString().Split('?')[0]
于 2012-05-29T16:56:41.683 に答える
0

これは Request のプロパティではありませんが、解決策を提供する場合があります。https://stackoverflow.com/a/2541083/969829

于 2012-05-29T16:07:36.730 に答える