2016-12-27 47 views
1
  • 假設我在ASP.NET Core中有一個CMS。
  • 假設根URL是test.net
  • 比方說,我將新頁面test.net/docs/doc1.html添加爲管理用戶。

一旦API調用來更新我的數據庫完成我希望能夠導航到該URL和這個URL路由到讓我們說Content控制器。從控制器內添加一條到控制器的新路線?

如何正確配置「全部捕獲」控制器,我的意思是控制器從URL獲取路徑並從數據庫中獲取頁面?我的目標是允許任何路徑被處理。沒有固定的路徑,如果DB說有一些內容在1/2/3/4/5.html我想要它由Content控制器處理。

然而,MVC必須仍然在這裏工作非常重要。所以我有我的固定路由到API,但是非API URL將被一個常見的Content控制器捕獲和處理。

+0

@MickyD 1.閱讀所有關於ASP.NET核心路由。構建一個定製路由器。我設法創建了靜態路由。 IDK如何在應用程序啓動後添加路線。 – Harry

回答

1

您的所有內容是否可以放在一個文件夾中內容?在這種情況下,你可以使用捕獲所有(通配符)路線的方法從內容控制器內:

public class Content : Microsoft.AspNetCore.Mvc.Controller 
{ 
    [Route("/Content/{*catchall}")] 
    public IActionResult Index(string catchall) 
    { 
     // catchall = 1/2/3/4/5.html  
     return View(); 
    } 
} 
+0

正是!作爲魅力,我使用'[路線(「{* catchall}」)]'',我甚至不需要單獨的文件夾。它仍然正確匹配API調用。我希望我知道那些「魔術串」在哪裏解釋...... – Harry