2012-03-31 19 views
2

未定義のコントローラを含むパスを特定のコントローラにルーティングするために、ASP.NET MVCのルーティングをどのように設定しますか。未定義のコントローラのルーティング

例えば、私はUserControllerでを持っているので、私はUserControllerでのルートにhttp://example.com/userをしたいだろうが、私はあなたが作成することができますスーパークールプロジェクト項目

答えて

1

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

+0

これは私の理想的な解決策ではありませんが、残念ながら実行可能です –

0

を見つけるためにProjectControllerへのルートにhttp://example.com/supercoolprojectを望みますこれを行うカスタムコントローラファクトリ。カスタムコントローラファクトリのIControllerFactory実装のCreateController方法で

http://keyvan.io/custom-controller-factory-in-asp-net-mvc

最初に、これはあなたのフォールバックコントローラのインスタンスを作成して、代わりにそれを返す失敗した後ならば、DefaultControllerFactoryを使用してコントローラを作成してみてください。