0

ASP.NET MVC で開発されたサイトのプライベート エリアから、「www.mysite.com/newpage/」(「www.mysite.com/」ではなく「www.mysite.com/newpage/」など) のような URL セグメントを持つ新しいページ (より適切にはコントローラー) を作成したいと考えています。 mycontroller/newpage/");

設計/開発時にコントローラーを作成したくありません。実行時にコントローラーを作成し、その名前 (url セグメント) をデータベースに保存できるようにしたいので、ページが要求されると、アプリケーションはそれがデータベースを作成し、ページ (ビュー) をレンダリングします。

そのようなオプションを実装するための最良の方法を説明するインターネット上の例を知っている人はいますか?

4

1 に答える 1

1

これを行うための最善の解決策は、単一のコントローラーに対して複数のルートを作成し、ルート名に従ってコードを実行することです。これらのルート名はデータベースでも管理できます。

例 :

Global.asax

public static void RegisterRoutes(RouteCollection routes)
{
    // The collection of route can be manage via DB
    foreach (string route in new[] { "route1", "route2", "route3" })
    {
        routes.MapRoute(
                route,
                route + "/{*args}",
                new { controller = "MyController", action = "MyAction", args = UrlParameter.Optional, routeName = route }
        );
    }
}

MyController

public ActionRestult MyAction(string args)
{
    switch(RouteData.Values["routeName"].ToString()){
        case "route1" :
            // do your code
        break;
        case "route2" :
            // do your code
        break;
        case "route3" :
            // do your code
        break;
    }
}

これがお役に立てば幸いです!!

于 2012-10-26T17:11:54.587 に答える