私のASP.NET MVC3プロジェクトでは、というコンテンツ(MVCプロジェクトのデフォルトフォルダ)というフォルダがあります。しかし、コントローラのコンテンツもあります。このコントローラーのデフォルト動作を使用する場合は、単にhttp://domain/content/を使用します。これはhttp://domain/content/indexに相当します。しかし、IISは403エラーを返し、私はコンテンツフォルダのディレクトリリストを取得するつもりだと思う。さて、この質問はすでにthis質問で議論されています。しかし、URLに書き換えてデフォルトのアクションを追加する方法はわかりません。誰か助けてください。ASP.NETコントローラ名がフォルダ名と競合しました
答えて
あなたは、このようなデフォルトルートを追加することができます:あなたが指定するルーティングの設定を変更することでこれを回避することができます
routes.MapRoute(
"DefaultContent", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Content", action = "Index", id = "" } // Parameter defaults
);
Downvote。私は、ルートルールにマップする前に着信URLを_rewrite_したいと言っていたからです。私は既にそのルートルールを実際に使っています。しかし、IIS StaticHandlerが優先的に応答します。 –
投稿でそれを言及するのはどうですか?申し訳ありませんが、私のマインドスキャナは今日働いていません。 – Mrchief
:あなたのケースでは
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
を
routes.RouteExistingFiles = true;
次に、本物の静的コンテンツがthによってぎこちなくされるのを防ぐためにいくつかの無視ルールを設定する必要がありますルーティングエンジン。
たとえば、私は自分のアプリでTouchというフォルダを持っていますが、私もTouchのための特定のルートを持っています。だから、作業の設定は次のとおりです。
routes.RouteExistingFiles = true;
routes.IgnoreRoute("Touch/Client/{*touchclientversion}", new { touchclientversion = @"(\d*)(/*)" });
私はこの種のものは、一般的に避けるべきであることに同意し、時にはそれが
- 1. 競合名はフォルダとPHPファイルに影響します
- 2. フォルダ名の競合によりリライトが動作しません
- 3. MongoMapperのキー名と競合します
- 4. ASP.NET MVC Url.Actionはコントローラ名と匿名名を削除します
- 5. コントローラー名とプレゼンター名前空間の名前が競合しています
- 6. ASP.Net MVCルーティングアクションの名前の競合
- 7. ASP.NET MVC C#クラスのコントローラ名とアクション名を取得します
- 8. Javaパッケージ名と競合
- 9. 名前の競合ゲッターが見つかりました:isImportantForAccessibility
- 10. モデル名の競合
- 11. ASP.NET - DbUpdateException:DELETEステートメントがREFERENCE制約と競合しました
- 12. Asp.net推測コントローラ名
- 13. "PropertiesController"という名前のコントローラを使用したASP.NET MVCルーティング
- 14. エリアとコントローラ名(asp.netコア)を使用したルーティング
- 15. nginxでサーバ名が競合しています
- 16. libC++ - bind()の命名が競合していますか?
- 17. CXF - コレクションのスキーマ名が競合します
- 18. アンドロイドバイナリの名前の競合。
- 19. Djangoのテンプレート名の競合
- 20. Rubyのモジュール名の競合
- 21. XML名前空間競合
- 22. virtualenvモジュール名の競合
- 23. Microsoft Fakesアセンブリ名の競合
- 24. ASP.NETコア - ASP.NET MVCのコアプロジェクトでTagHelper、部分的なビューとプロパティ名の競合
- 25. XNAとSystem名前空間の競合
- 26. Javascript関数とフォーム名の競合
- 27. Firebaseデータベースエラー:名前のために競合ゲッターが見つかりました:isAccessibilityFocusable
- 28. ASP.NET MVCで非同期GET/POSTとアクション名の競合が発生する
- 29. ファイル名が競合するカスタムApp.configセクション
- 30. ZendRouterによってページが見つかりません:コントローラ名としてフォルダ名を扱います
:-)かなりのURLがあると便利ですちょうどあなたがしている今、同じ名前を使用しないよう他の方法では避けられない不必要な問題に陥る。 Contentフォルダの名前をpublicに変更するだけです。 – mare
さて、私はそれを知っています。しかし、私の質問は一般的なケースです。本当の名前の衝突に遭遇すればどうなりますか?とにかく、言及いただきありがとうございます。 –