問題タブ [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 投票する
3 に答える
4118 参照

asp.net-mvc - ASP.NET MVC ページ/サブページ ルーティング

次のシナリオを処理する方法を理解しようとしています。一般に、テーブルにはたくさんのレコードがあります。これらはすべて、ツリーを形成するための ID フィールドと ParentID フィールドを持っています。

今、私は Page3 と Page6 の私のルートがそれぞれ似ているようにし/Page1/Page6たい/Page3/Page5/Page6. つまり、すべての親を URL に含めたいと考えています。

上記の結果を達成するためにコントローラーのアクション/ルーティングを設定するにはどうすればよいですか?

編集:上記の構造が動的になることを忘れていました-ノードを追加/削除/親の変更などを行うことができます.

0 投票する
3 に答える
3582 参照

asp.net-mvc - ASP.Net MVC Html.ActionLink()の問題

私はMVCベータ版を使用して、ASP.NetMVCを理解するための簡単なアプリケーションを作成しています。このアプリケーションは、タグ付けされたシンプルな写真/ビデオ共有サイトです。私はMVCスケルトンプロジェクトに取り組んでいます。ナビゲーションバーにいくつかのHtml.ActionLink()を追加しましたが、1つの場所に追加したHtml.ActionLink()の1つに問題があります。

〜/ Tagsにデータベースのすべてのタグを表示させ、〜/ Tags/{tag}に{tag}でタグ付けされたすべてのファイルのリストを表示させたい。これは期待どおりに機能しますが、〜/ Tags / {tag}をたどると、ナビゲーションバーのHtml.ActionLink()が、〜を指すのではなく、〜/ Tags/{tag}リンクと同じになるように変更されます。 /タグ。〜/ Tags / {tag}をたどると、ナビゲーションバーのActionLink()が変化する理由がわかりません。プロジェクト内の別のリンクに移動すると、ActionLink()は期待どおりに機能します。

アクションリンクとルートをこのように設定しました。私のTagsControllerにはこのインデックスアクションがあります。int?ページング制御用です。2つのビューがあります。1つはAllと呼ばれ、もう1つはDetailsと呼ばれます。私は何が間違っているのですか?

0 投票する
6 に答える
20724 参照

.net - 「リソースが見つかりません。」URLの末尾に「ドット」がある場合のエラー

ASP .NET MVC ベータ版を使用していますが、末尾に「ドット」がある次の URL を使用すると、HTTP 404 (リソースが見つかりません) エラーが発生します。

http://localhost:81/Title/Edit/Code1 .

最後にドットを削除するか、ドットが途中にある場合、エラーは発生しません。

デバッグしようとしましたが、MvcHandler の ProcessRequest の前に "System.Web.CachedPathData.GetConfigPathData(String configPath)" からエラーが発生しました。

URL の末尾に「ドット」を使用することはできませんか? または、この URL を処理するようにルート定義を修正する方法はありますか?


例: Detail1 [Id(integer), Code(string), Description(string)] という名前のテーブルがあり、ID 列を介して Master1 との FK 関係があります。Master1 のレコードを選択するたびに、その Detail1 レコードも選択して Code フィールドを取得します。毎回この結合を作成しないようにするために (通常、Detail は 1 つだけではなく、複数あるため)、Id 列を使用しないことを選択し、Detail1 の Code PK を作成します。

しかし、Id を取り除き、Code を PK として使用すると、ルートも Code フィールドで動作し始めます。例: Detail1\Edit\Code1

このコードには、DOT を含め、その中または最後に何でも含めることができます。最後に DOT を禁止できる場合もありますが、非常に意味のある場合もあります。

また、ルートが非常に柔軟であるというこの投稿も見たので、私のルートがそれほど変だとは思いませんでした。

だからこそ、私は非常に非標準的なことをします。助言がありますか?

また、URL の末尾に DOT があるのはなぜおかしいのでしょうか?

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

asp.net-mvc - 渡されたパラメーターにドットが含まれている場合のasp.net mvcルーティング

私は非常に基本的なルーティングを持っています:

問題は、「.」のようなすべての単純なケースで完全に機能することwww.xxx.yy/pages/filter/testです。{id} 部分にドット「.」を追加するとすぐに失敗し、「リソースが見つかりません」が返されます。それはのために起こりますwww.xxx.yy/pages/filter/test.

助言がありますか?

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

ruby-on-rails - Rails: RESTful ヘルパーにアクセスするにはどうすればよいですか?

このガイドを Rails ルーティングに取り組もうとしていますが、セクション3.3で行き詰まりました:

RESTful ルートを作成すると、アプリケーション内で多数のヘルパーを利用できるようになります

そしてphotos_urlphotos_path、 などのヘルパーをリストします。

私の質問:

「利用可能」になっているヘルパーの完全なリストはどこにありますか?

コンソールでヘルパーを呼び出す方法はありますか? アプリを作成し、コンソールをscript/console. 次のように、コンソールでヘルパーの 1 つを呼び出そうとしました。

しかし得た:

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

asp.net-mvc - ASP.NET MVC URL ルーティングでコントローラーが見つからないのはなぜですか?

RegisterRoutes メソッドの Global.asax.cs ファイルに、

次に、このコントローラーを作成しました。

しかし、私が行くときの私のブラウザでは:

私は404を取得します。

ルーティングがコントローラーを見つけるために、他に何を定義する必要がありますか?

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

asp.net - あまり一般的ではないシナリオでの ASP.NET MVC ルーティングの最良の方法は?

更新 - 2009 年 1 月 21 日:

これを適度にうまく機能させることができた唯一の方法は、追加のパス情報を持つルートを作成することです...つまり、http://company.com/myDepartment/myTeam/action/idの代わりに、ルートに必要なものhttp://company.com/department/myDepartment/team/myTeamなどのパスを処理するように構築されます。

更新終了 - 2009 年 1 月 21 日:

同じコントローラー/ビューにルーティングできるようにするために必要な URL 規則が 2 つあります。

http://team.department.company.com/Action/id

http://department.company.com/Action/id

http://company.com/Action/id

部門/チームのエイリアスが Uri のホスト名に含まれているため、上記の処理は非常に簡単です。

ただし、次のことを実装したい場合、満足に機能させることができませんでした。

http://company.com/department/team/Action/id

http://company.com/department/Action/id

http://company.com/Action/id

私が定義したルートは次のとおりです。

私が抱えている問題は、コントローラーのすべてのアクション メソッドが departmentId と teamId パラメーターを必要とすることです。OnActionExecuting イベント ハンドラーで取得したベース コントローラー クラスの部門/チーム ID 値を「前処理」できるようにしたいだけです。私は間違った木を吠えていますか?独自の Mvc Route ハンドラーを実装する必要がありますか?

注: これはレガシー アプリを置き換えるものであり、URL 形式を保持/維持する必要があります。

編集: まず、これまでの応答に感謝します。私が受け取った回答に基づいて、私はある点で十分に明確ではなかったと思います. これは(大まかに)私のコントローラーがどのように見えるかです:

ただし、このスキームでは、このクラスから継承する (そして上記のルートで適切にルーティングされる) すべてのコントローラーは、アクション ハンドラーで (冗長/不要であると私が認識しているもの) パラメーターを期待します。各ハンドラーがこれらの「追加の」パラメーターを必要とすることを避けたいので、提案を探しています。

ありがとう!-ジョルジオ

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

asp.net-mvc - MVC Beta Web アプリケーションを仮想ディレクトリに移動すると、すべての /Content リソースが取り除かれます

win2008サーバーでVS2008を使用して開発された非常に優れたMVCベータアプリケーションがあります。問題は、IIS6 仮想ディレクトリに展開しようとしたときに始まりました。MVC ベータ版をターゲットの win2003 サーバー ボックスにインストールした後、アプリケーションを仮想ディレクトリから表示することができましたが、すべての画像と css 属性が欠落しています。プレースホルダーは、アプリケーションが実行されている仮想ディレクトリではなく、ルート Web サイトにイメージを配置する必要があることを示唆しています。

実際のパス:

それよりも:

アプリケーションを独自の Web サイト (ルート) にインストールすると、すべて正常に動作します。Web プロパティを "Use Visual Studio Development Server"/Specific Port / に設定し、仮想パスを追加することで、VS2008 でこれを複製できます。

プロジェクトの Web プロパティを「ローカル IIS Web サーバーを使用する」に設定し、仮想ディレクトリを作成することで、これを複製することもできます。

mvc url ルーティングに関して、明らかに欠けているものがあります。ここでのガイダンスをいただければ幸いです。

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

asp.net-mvc - ASPNET MVC: リファラー (sic) のルートを把握する方法は?

コントローラーには、GET アクションのペアからヒットする POST アクションがいくつかあります。検証が失敗した場合、POST の元であるアクションのビューをレンダリングしたいと考えています。例えば:

~/accounts POSTs to ~/accounts/disable - 検証エラーで "index" ビューをレンダリングします ~/accounts/profile POSTs to ~/accounts/disable - 検証エラーで "profile" ビューをレンダリングします

サーバー変数からリファラー (sic) を取得し、それを解析してアクションを理解することができますが、私が望むことを行う何かが組み込まれていることを望んでいたか、他の誰かがすでにこれを行っており、私が盗むことができます.

ControllerContext.RouteData プロパティには、現在のリクエストに関する情報のみが含まれており、参照元の (sic) リクエストではないようです...?

私は ASP.NET MVC ベータ版を使用しています。

0 投票する
4 に答える
26639 参照

asp.net-mvc - ASP.NET MVC QueryString の既定値は、指定された値をオーバーライドしますか?

ASP.NET MVC Preview 5 を使用すると (これはベータ版でも試行されています)、ルートのクエリ文字列の既定値が、クエリ文字列で渡される値をオーバーライドするようです。再現は、次のようなコントローラーを作成することです。

ルートは次のようにマッピングされます。

次に、この相対 URI で呼び出します。

私が見るトレース出力は次のとおりです。

つまり、ルートに設定されたデフォルト値は、クエリ文字列で実際に指定されたかどうかに関係なく、常にメソッドに渡されます。クエリ文字列のデフォルトが削除された場合、つまりルートは次のようにマッピングされることに注意してください。

その後、コントローラーは期待どおりに動作し、値がパラメーター値として渡され、トレース出力が得られます。

これはバグのように見えますが、このようなバグが ASP.NET MVC フレームワークのベータ リリースにまだ残っている可能性があることは非常に驚くべきことです。デフォルトのクエリ文字列は厳密には難解な機能でもエッジ ケースの機能でもないためです。 、だからほぼ間違いなく私のせいです。私が間違っていることはありますか?