从控制器内部向控制器添加新路由?

时间:2016-12-27 15:43:54

标签: c# controller asp.net-core

  • 我想说我在ASP.NET Core中有一个CMS。
  • 假设根网址为test.net
  • 我们假设我将新页面test.net/docs/doc1.html添加为管理用户。

一旦API调用更新我的数据库完成,我希望能够导航到此URL并将此URL路由到让我们说Content控制器。

如何正确配置"抓住所有"控制器,我的意思是控制器从URL获取路径并从数据库中获取页面?我的目标是允许处理任何路径。没有固定的路径,如果数据库说1/2/3/4/5.html有一些内容我希望它由Content控制器处理。

重要的是,MVC必须仍然在这里工作。所以我有固定的API路由,但是非API的URL会由一个常见的Content控制器捕获和处理。

1 个答案:

答案 0 :(得分:1)

您的所有内容都可以放在一个文件夹中,例如内容?在这种情况下,您可以在内容控制器中使用Catch All(通配符)路由方法:

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