未定義のコントローラを含むパスを特定のコントローラにルーティングするために、ASP.NET MVCのルーティングをどのように設定しますか。未定義のコントローラのルーティング
例えば、私はUserControllerでを持っているので、私はUserControllerでのルートにhttp://example.com/userをしたいだろうが、私はあなたが作成することができますスーパークールプロジェクト項目
未定義のコントローラを含むパスを特定のコントローラにルーティングするために、ASP.NET MVCのルーティングをどのように設定しますか。未定義のコントローラのルーティング
例えば、私はUserControllerでを持っているので、私はUserControllerでのルートにhttp://example.com/userをしたいだろうが、私はあなたが作成することができますスーパークールプロジェクト項目
http://example.com/supercoolprojectアドレスを使用しないでください。代わりに、それはhttp://example.com/project/supercoolする必要がありますが、あなたはhttp://example.com/ {プロジェクト名}プロジェクト形式でアドレスを使用したい場合、あなたはこのようにGlobal.asaxの中でルールを定義することができます。
routes.MapRoute(
"ProductByNameRule",
"{projectName}project",
new { controller = "Project", action = "ByName" }
);
と
public ActionResult ByName(string projectName) {
}
でを持っていますProjectController
。
を見つけるためにProjectControllerへのルートにhttp://example.com/supercoolprojectを望みますこれを行うカスタムコントローラファクトリ。カスタムコントローラファクトリのIControllerFactory実装のCreateController方法で
http://keyvan.io/custom-controller-factory-in-asp-net-mvc
最初に、これはあなたのフォールバックコントローラのインスタンスを作成して、代わりにそれを返す失敗した後ならば、DefaultControllerFactoryを使用してコントローラを作成してみてください。
これは私の理想的な解決策ではありませんが、残念ながら実行可能です –