【问题标题】:ASP.NET MVC 5 -Custom URLs with Attribute Routing and Dynamic controller and Action methodsASP.NET MVC 5 - 具有属性路由和动态控制器和操作方法的自定义 URL
【发布时间】:2016-02-05 00:30:00
【问题描述】:

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 中使用 Dots (.)
第二件事我希望 url 非常简单,只有 3 个部分 域名/CategoryOfArticle/ArticleName 如 URL DomainName -BornToProgram.com , CategoryofArticle -.Net , ArticleName -.Net-Core

在所有我想允许管理员决定部分 URL 用于他可以每月或每天提交的新文章。 喜欢文章的类别(例如.Net) 然后是文章名称(.Net-Core,.Net-Framework) 管理员希望完全控制 URL

【问题讨论】:

标签: c# asp.net-mvc asp.net-mvc-5 asp.net-mvc-routing


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2015-10-12
    • 2018-02-20
    • 2015-06-27
    • 2018-09-14
    相关资源
    最近更新 更多