問題タブ [system.web.routing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
2632 参照

asp.net - Asp.Net System.Web.Routing 実際の .aspx ページを見つける

私は System.Web.Routing を使用して URL を改善していますが、問題が発生しました。リクエストを処理している実際のページを知る必要があります。

たとえば、リクエストは次のようになります。

次のように、そのリクエストを処理するページを見つける必要があります。

私は System.Web.Routing のみを使用しており、MVC は使用していません。ルート情報の一部を含む RequestContext へのハンドルがありますが、必要なものがわかりません。

前もって感謝します。

******* アップデート *******

「ASP.management_default_aspx」を提供するContext.CurrentHandlerを使用することができました。正確にはページではありませんが、ページ名を取得するのに十分です。

0 投票する
1 に答える
162 参照

asp.net - ロードされたルーティングhttpモジュールを見つけるにはどうすればよいですか?

System.Web.Routingモジュールを使用している従来のAsp.NetWebサイトを使用しています。ルーティングhttpモジュールがロードされているかどうかを知る方法を知りたいですか?

0 投票する
1 に答える
1719 参照

asp.net-mvc - ASP.NETMVCルーティングを使用したURLの解析

関連するルート値を取得するために解析したい文字列形式のURLがあります。文字列を手動で解析することもできますが、ルーティング構成を使用して、特定の文字列形式に縛られないようにします(URL形式を簡単に変更できるようにします)。

RouteCollectionでGetRouteDataメソッドを使用しようとしていますが、これにはHttpContextBaseパラメーターが必要です。明らかに、これはURLが現在のURLの場合は正常に機能しますが、任意のURLを渡すことができる必要があります。

ルーティングユニットテストでは、HttpContextBaseをモックアウトしますが、本番コードではそれを行いたくありません。

何か案は?

0 投票する
1 に答える
817 参照

asp.net - 仮想パスを指定して RouteValueDictionary を作成する方法

仮想パスを指定すると、パスに一致するルートのパラメーター名と値のコレクションを返すメソッドがあるかどうかを知りたいです。これは、正規表現をハードコーディングすることなく、ターゲット ページの URL のパラメーターを取得するために必要です。

これは、RouteValueDictionary を受け取って仮想パスを返す RouteTable.Routes.GetVirtualPath の逆だと思います。

これは可能ですか?

マーク

0 投票する
2 に答える
2052 参照

asp.net - ASP.NET System.Web.Routing およびクエリ文字列パラメーター

ASP.Net 3.5 SP1 "System.Web.Routing" を使用して、WebForm アプリケーションで URL ルーティングを有効にしています。今私が必要としているのは、いくつかのパラメータを QueryString に渡すことです。

http://www.mydomain.com/Search/Books/Computers?sort=author&pagesize=10

これは私が使用しているルートです:

ルートは search.aspx にリダイレクトされるため正常に動作していますが、クエリ文字列で追加のパラメーターの並べ替えとページサイズが見つかりません。

0 投票する
2 に答える
326 参照

asp.net - Web。サイトルートまたはホームページのルーティング

私はWeb.Routingでいくつかの作業を行っており、これを使用して、基本的に単一のIHttpHandlerによってレンダリングされるサイトへのわかりやすいURLとRestのようなインターフェイスを使用しています。Webフォームはありません。ハンドラーは、すべてのhtml / jsonを生成し、プロセスリクエストの一部として書き込みます。

これは、たとえば/ Sites / Accountingのようなものではうまく機能しますが、サイトルート(つまり「/」)では機能しません。

'default.aspx'(cassiniとiisでうまく機能するためにルートフォルダーに保持している空のaspxファイル)を使用して、空の文字列でルートを登録しようとしました。RouteExistingFilesを明示的にfalseに設定しましたが、ルートURLをヒットしたときに何をしても、default.axpxが開きます。これには、継承元のコードがなく、ヒットしたことを示す単純なh1タグが含まれています。

デフォルトファイルを変更して目的のルートにリダイレクトしたくありません。MVCと同様に、他のルートが見つからない場合に適用される「デフォルト」ルートに相当するものが必要です。

参考までに、以前のバージョンのサイトはWeb.Routingを使用していませんでしたが、rootまたはdefault.aspxの要求を完全にインターセプトできるハンドラーがweb.configで参照されていました。

仕様:ASP.NET 3.5sp1、C#、Webフォームなし、MVCまたはopenrasta。プレーンな古いIHttpHandler。

0 投票する
2 に答える
724 参照

asp.net - Web フォームでルーティングを使用するときに仮想 URL を取得する

System.Web.Routing を Web フォームで使用するときに、URL がマップされる Web フォーム ページ名ではなく、仮想 URL を取得するにはどうすればよいですか。

「Confirm.aspx」ではなく「/confirm/5」という URL が必要です。

0 投票する
2 に答える
574 参照

asp.net-mvc - ASP.NETMVCルートの失敗。これはバグですか、それともコーナーケースですか?

私はASP.NETMVC3アプリケーションを持っており、ユーザーは「やだやだやだならblablaの方がいい」という方針に沿って提案を投稿できます。提案の詳細ページでは、SEOに適したルートを次のように定義しました。

ご覧のとおり、「もしも」の部分を修正したいと思います。

このルートは、古い提案に対して完全に機能し、のようなリンクを生成しますsuggestion/5/this-site/would-be-better-if-it-had-a-iphone-application。リンクをクリックすると、実際に適切な詳細ページが要求されます。

皮肉なことにテスターである私の友人は、思わず、実際にルートを破る提案を投稿することができました
この提案のために生成されたリンクはです /suggestion/84/this-site/would-be-better-if-would-be-better-if-was-always-alligned-in-the-middle

PhilHaackのRoutingDebuggerを試し、ルートが実際にまで機能することを確認したsuggestion/84/this-site/would-be-better-if-would-be-better-if-ので、2番目の「would-be-better-if」が実際に受け入れられます。その後に何かを追加すると、実際にはURLがどのルートとも一致しなくなります(Omarに感謝します-コメントを参照してください-ヘルプが必要です)


ルート定義は、SEOの観点から、このケースで管理できる限り良いと思うので、実際には変更したくないことを覚えておいてください。

では、どうしてルートの固定部分に等しいテキストがあると、リンクがルートと一致しなくなるのでしょうか。なぜルートが壊れているのですか?

理由を理解することで解決策が得られるか、少なくとも興味深い問題を適切に理解できると信じているので、私は実際にはその理由にもっと興味を持っています。

0 投票する
1 に答える
458 参照

asp.net-mvc - System.Web.Routing / ASP.NET MVC でリテラル チルダ文字 (~) で始まる URL を一致させるにはどうすればよいですか?

古い学校のコードを ASP.NET MVC に変換していますが、URL 形式が原因で問題が発生しました。次の例のように、特別な URL パスの前にチルダを付けて、サムネイルの幅、高さなどを URL で指定します。

http://www.mysite.com/photo/~200x400/crop/some_photo.jpg

現時点では、これは IIS のカスタム 404 ハンドラーによって解決されていますが/photo/、ASP.NET に置き換えてSystem.Web.Routing、受信 URL から幅、高さなどを抽出するために使用したいと考えています。

問題は - 私はこれを行うことはできません:

System.Web.Routing では、ルートをチルダ (~) 文字で開始できないためです。

URL 形式を変更することはできません。この URL 形式は 2000 年から公式にサポートされており、Web にはおそらくこの URL への参照があふれています。ある種の制約付きワイルドカードをルートに追加できますか?