2016-04-11 5 views
0

同じ名前のトピックがたくさんあることは知っていますが、これまでに見つけたトピックはありません。Dynamic Mvc route

生徒が自分のプロジェクトをアップロードするときにアップロードする「Dropbox」サイトを作成しています。

生徒はフォルダを作成でき、ウェブサイト上に作成できる「フォルダ」に基づいてURLを表示することができます(可能な場合)。

フォルダは次のようになります。

  • ホーム
  • プロジェクト
    • プロジェクト1つの
      • プロジェクト1つのV1
      • プロジェクト1 V2
        • のように。
    • プロジェクト2
  • 提出

基本パスが短くても長くなる可能性がフォルダレベルに依存します。 ように:HomeまたはProject/Project-1-v1/またはProject/Project-1-v1/Upload/Final

上記のパスのいずれかを受け入れるダイナミックurl/actionを作成する方法はありますか?

答えて

0

これはかなり簡単に行うことができます。

マイRouteConfig.cs

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapMvcAttributeRoutes(); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

     routes.MapRoute("CatchALL", "{controller}/{action}/{id}/{*catchall}", 
      new 
      { 
       controller = "Home", 
       action = "Index", 
       id = UrlParameter.Optional 
      }); 

マイController

[Route("Home/{*catchall}")] 
    public ActionResult Part(string catchall) 
    { 
     return View(); 
    } 

これは、URLだった場合:http://stackoverflow.com/Home/36542665/dynamic-mvc-routeキャッチオールが含まれます= 36542665/dynamic-mvc-route