2016-12-27 43 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