ASP.NET MVC 5 - 具有属性路由和动态控制器和操作方法的自定义 URL

本文关键字:动态控制 动态 控制器 URL 自定义 操作方法 路由 MVC NET 属性 ASP | 更新日期: 2023-09-27 18:33:21

NET MVC 5** 我想要这样的网址http://borntoprogram.com/.Net/.Net-Core/

我知道我可以使用属性路由来实现它,如下所示

[RoutePrefix(".Net")]
[Route("{action=Index}")]
public class NetController : Controller
{
    [Route(".Net-Core")]
    public ActionResult NetCore()
    {
        return View();
    }
}

但我想动态生成控制器和操作方法。并为此使用属性路由。
我想在 URL 中使用点 (.)
第二件事我希望 url 非常简单,只有 3 个部分,例如 域名/文章类别/文章名称如 URL 域名 -BornToProgram.com , 类别文章 -.net , 文章名称 -.网芯

总而言之,我想允许管理员决定URL的部分内容,以便他可以每月或每天提交新文章。喜欢文章的类别(例如 .net),然后是文章名称( .网芯 , .网络框架)管理员希望完全控制网址

ASP.NET MVC 5 - 具有属性路由和动态控制器和操作方法的自定义 URL

由于属性用于将元数据附加到类,因此无法在运行时动态添加它们。但即使可以,读取它们并将其转换为Route实例的属性路由框架也不太可能正常运行。

如果需要创建动态驱动的路由,解决方案是继承RouteBase以便您可以添加 URL 和/或指定它们在运行时应引用的控制器。您应该像示例中一样缓存 URL 列表,但没有理由不能调整缓存,以便在将单个 URL 添加到应用程序中时可以逐个添加到其中(一次性将它们添加到缓存和数据源中,因此它们立即和永久可用)。