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

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

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();
    }
}

但我想动态生成 Controller 和操作方法。并使用属性路由。
我想在 URL 中使用 Dots (.)
第二件事我希望 url 非常简单,只有 3 个部分,比如 域名/文章类别/文章名称 如 URL DomainName -BornToProgram.com,CategoryofArticle -.Net,ArticleName -.Net-Core

总而言之,我想让管理员决定他可以每月或每天提交的新文章的 URL 部分。 喜欢文章的类别(例如.Net) 然后是文章名称(.Net-Core、.Net-Framework) 管理员想要完全控制 URL

最佳答案

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

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

关于c# - ASP.NET MVC 5 - 具有属性路由和动态 Controller 和操作方法的自定义 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35214300/

相关文章:

c# - WPF 是否讨厌猫图像?或 : Why can I reference one, 但不是来自同一文件夹的其他图像?

c# - 为什么 ASP.NET Identity 返回 401 而不是重定向到登录页面?

c# - 如何在一个 Controller 中调用三个get方法?

c# - 如何在 .Net C# 中解析多个单个 xml 元素

c# - 如何使用 .NET 为 Windows 应用程序实现通知

javascript - ASP.NET MVC - Ajax上下文

asp.net-mvc - 没有管理员权限安装ASP.Net MVC?

c# - 如何使用 VS2013 MVC5 模板显示自定义配置文件信息?

c# - 我可以在 C# 中创建一个全局异常处理程序,让代码在之后继续运行吗?

c# - 无法使用枚举隐式转换类型