問題タブ [asp.net-mvc-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.
c# - ルーティングのスペースは 404 を与える
私は現在、このルートを(とりわけ)定義しています:「{controller}/{action}/{id}/{designation}」は:
- 「id」私の主キー
- 「指定」は SEO のみに使用され、考慮されません。
今私の問題は次のとおりです。「http://server/Home/Index/1/teste」は機能しますが、最後にスペースがある「http://server/Home/Index/1/teste」は機能しません。
IIS から404が返され、この要求に対して mvc が開始されていません。
誰でもこの動作を経験しましたか? 何か変更する必要がありますか?
敬具
asp.net-mvc - ASP.Net MVC ルーティング アクション名の競合
アーティストや会場を扱う Web サイトがあり、ASP.net MVC で開発しています。
フォルダー (Views/Artists/..)、ArtistsController、ArtistsRepository にアーティスト ビューがあり、Show、New、Delete などの REST アクション名に従います。
最初にサイトをモックアップしたとき、テスト URL は /artists/Show/1209 だったので、すべてがテスト環境でうまく機能しましたが、これを変更して、Web サイトが /artists/Madonna や /artists/Foo-Fighters などのように表示されるようにする必要があります。
しかし、有効なアーティスト名とそのコントローラーのアクション名をどのように区別すればよいのでしょうか?! たとえば、artists/PostComment または artist/DeleteComment? ルーティングでこれを処理できるようにする必要があります。デフォルトの表示ルートは次のとおりです。
これを回避する方法の 1 つは、Web サイトを /artists で目に見えるように実行することですが、コントローラーの名前を ArtistsController ではなく単一の ArtistController に変更します。それは、私たちが始めたときに使用した命名規則に反することになります (しかしねえ!)。
他におすすめはありますか?可能であれば、動詞に応じてルーティングすることもできます (したがって、PostComment は POST になるため、おそらくそのアクションにルーティングできます) が、それが可能であるどころか、望ましいかどうかはわかりません。
ありがとう
asp.net-mvc - クエリ文字列 ID をコントローラー アクションに渡す ASP.Net MVC ルーティングの従来の URL
現在 IIS6 で実行していますが、すぐに IIS 7 に移行したいと考えています。
既存の Web フォーム サイトを ASP.Net MVC に移行しています。新しいコントローラーにリダイレクトする必要がある古いページがかなりあります。興味深いこの記事を見つけました: http://blog.eworldui.net/post/2008/04/ASPNET-MVC---Legacy-Url-Routing.aspx
したがって、独自のルート ハンドラーを作成するか、コントローラーでリダイレクトを行うことができると思います。後者はわずかににおいがします。
ただし、理想的にはコントローラーの Show() メソッドに渡す必要がある従来の URL からのクエリ文字列値を処理する方法がよくわかりません。例えば:
以前の URL:
/Artists/ViewArtist.aspx?Id=4589
これを次の場所にマップしたい:
ArtistsController アクションを表示
実際、私の Show アクションはアーティスト名を取得するため、ユーザーをレガシー URL から /artists/Madonna にリダイレクトする必要があります。
ありがとう!
c# - 保存されたデータから ASP.NET MVC の URL/ルートを再構築するにはどうすればよいですか?
ASP.NET MVC フレームワークとその配管に不慣れだったので、ここにたどり着きました。誰かが私の質問を読んで検討するのにかかる忍耐に感謝します!
さて、シナリオは次のとおりです。検索に基づいたデータ、他のデータからのドリルダウン、コンテキスト固有のデータに基づくレポートを表示するグリッドを備えた多数のページを持つアプリケーションがあります (つまり、それらは Foo の詳細ページにあり、次に をクリックします)。 Foo に関連するデータの表を示すリンク) など。
アプリ全体にあるこれらのページのすべてから、ユーザーは名前と説明を付けて「レポート」またはグリッドを保存できます。これは、グリッドに表示されるデータを実際に保存するのではなく、グリッドがどのように見えるかを定義するパラメーターを保存し、データを取得するために使用されたパラメーターを保存し、「場所」を定義するパラメーターを保存します。アプリ (アクション、コントローラー、ルート) - 基本的に、レポート/グリッドとその構築方法に関する一連のメタデータです。
これらの保存されたレポートはすべて、アプリの特定のページに名前と説明を表示する単一のリストで利用でき、それぞれが「/Reports/Saved/248」のような一般的な URL にリンクしています (248 は例です)。レポートの ID)。
ここに私が助けが必要な部分があります:
URL「/Reports/Saved/248」を介してアクションに到達し、その特定のレポートのデータベースからメタデータを取得する場合、そのデータとリクエストを同じアクション、コントローラー、および表示に使用されるルートにリダイレクトするにはどうすればよいですかレポートが最初に保存されたビュー 基本的に、保存元と同じ URL を使用して、ユーザーが同じビューでレポートを表示できるようにしたいと考えています。可能であれば、メソッド呼び出しを行っているかのように、基本的に同じアクションを「呼び出す」ことができるとよいでしょう。
更新: 残念ながら、レポート ページ (つまり、これらのグリッドが表示されるページ) は RESTful URL を使用していません。たとえば、高度な検索ページと呼ばれるものがあります。選択リスト、テキストボックスなどを含むフォームから。ユーザーがそのページを送信すると、モデルバインダーが構築する複雑なタイプを受け入れるアクションに対して POST を実行します。ユーザーがデータベースから保存済みの高度な検索を選択します。その例は私の問題を象徴しています。
ありがとう
asp.net-mvc - ASP MVC で URL にパラメーターを追加する
コントローラーとアクションの前に、ASP MVC URL の一部としてパラメーターが必要です。
http://www.mydomain.com/ company1 /ホーム
また
http://www.mydomain.com/ company1 /Clients/Detail/1
(理想的には、これを次のようなサブドメインとして使用したいと考えています: http:// company1 .mydomain.com/Clients/Detail/1 したがって、これを解決する回答も高く評価されます)
このパラメーターを Account と呼びます。ルーティング マップに「{account}/{controller}/{action}/{id}」のようなものを追加しようとしましたが、 http://www.mydomain.com/company1のようなものを試すと 404 エラーが発生します/家
Global.asax の RegisterRoutes は次のとおりです。
Views フォルダまたは Controller アクションを整理する際に、何か特別に行う必要があることはありますか?
asp.net-mvc - ASP MVC での複雑な URL の処理
私は、ASP MVC 1.0 で処理する複雑な URL を持っていると思います。ほとんどのコントローラーでのすべてのアクションには、アカウントとプロジェクトの 2 つのパラメーターが常に必要です。これは、各アクションの要件の上にあります。これは、典型的な URL が次のようなものであることを意味します。
この例では: myaccountはアカウント名です。プロジェクトはコントローラーにすることができ、他のオプションは場所、従業員などです。project_idはmyaccount内のプロジェクトの ID です。sitesはコントローラーである可能性があり、その他のオプションはstaffやpaymentのようなものです。editはアクションで、12は編集されたサイトの ID です。(これが十分に明確であることを願っています)
1 つのオプションは、ルートを作成し、すべてのアクションに 2 つの追加パラメーターを追加して、コントローラーのすべてのアクションに project_id とアカウントを渡すことです。これは実際には望ましくありません。また、2 つのコントローラー (プロジェクトとサイト) がここで機能するかどうかもわかりません。
私の理想的な状況は、コントローラー アクションへの呼び出しと共に移動するある種のコンテキストを使用し、そこに project_id と myaccount を格納することです。残りのパラメーターは、次のような通常の方法で処理できます。
これがどのように/どこで起こるかについてのアイデアはありますか? また、これは ActionLink とどのように連携しますか (つまり、このコンテキストに基づいて正しいリンクを生成します)?
ありがとう!
asp.net - ルートコントローラーでルート「名前」を取得する方法
asp.net でルーティングを使用して素敵な URL を取得しています
global.asax でルートを定義するとき、同じコントローラー (c#) を使用する 2 つの異なるルートを作成します。
(どのように)コントローラ内から、ユーザーをこのコントローラに誘導した「キー」値が何であるかを判断することは可能ですか? または、使用パターンが間違っています。より適切な解決策である場合は、Controller を (再び) サブクラス化して 2 つを区別し、共通のコードを保持するのが簡単です。
asp.net-mvc - MVC ルーティング - ルート パーツを使用してビューを切り替える
次のような一連の URL があります。
現在、{ViewToUpdate} ごとに 1 つずつ、いくつかのルートをセットアップしました。コードを要約できるように、{ViewToUpdate} をアクション ハンドラに渡したいと考えています。それ以外の:
私は…したい:
ここに私の現在のルートがあります:
{ViewToUpdate} 文字列を処理するだけでなく、クエリ文字列を渡すようにルート定義を正しく設定するにはどうすればよいですか?
ティア
asp.net-mvc - ASP.NET MVC MapRoute で Windows 認証ダイアログ ボックスが表示されるのはなぜですか?
これには困惑しました。Microsoft の MVC 実装のバグかもしれないと思います。VS2008 SP1 を使用して MVC Web サイトを構築しています。ウェブサイトをロックダウンするために、コントローラーを次のように編集しました。
ASP.NET メンバーシップとフォーム認証を使用しています。コードをホストに公開すると、Windows 認証ダイアログ ボックスが表示されます。これを引き起こすためにどのような編集を行ったのかを理解しようと、頭を悩ませてきました。私はこれを理解しようとしてアプリケーションをほぼ完全に書き直し、Global.asax.cs ファイルの 1 つの変更に絞り込みました。最初に、バグのあるバージョン (の関連部分) をお見せしましょう。
このルートを使用してコードをローカルで実行すると、ブラウザが空白になります...ログオンページが表示されません。ホストでアプリケーションを実行すると、Windows 認証ダイアログ ボックスが表示されます。代わりにルーティングを次のように変更すると:
すべて正常に動作します。3 行目の編集で、URL 文字列の前に「Ideas/」を追加していることに注目してください。誰かが私にこれを説明できますか?コントローラーから Authorize 行 (上記の行 #3) を削除することで問題を解決することもできますが、もちろんセキュリティが失われます。
更新:ここに私の完全なメンバーシップセクションがあります:
asp.net-mvc - asp.net MVC で Server.Transfer メソッドを使用するにはどうすればよいですか?
ログインページに使用しようとしています。
しかし、例外が発生します->子リクエスト/アカウント/ログインの実行中にエラーが発生しました。