2016-02-05 86 views
2

NET MVC 5 **我想这样 http://borntoprogram.com/.Net/.Net-Core/ASP.NET MVC 5 - 自定义网址属性路由和动态控制器和操作方法

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

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

但我想要动态生成控制器和动作方法。并使用该属性路由。
我想用点(。)在URL
秒件事我想的网址是非常简单的具有类似于 域名/ CategoryOfArticle/ArticleName的 仅有3件作为URL域名-BornToProgram.com ,网络文章 - .Net,文章名称 - .Net核心

我希望允许管理员决定网址的部分内容,以便每月或每天提交新文章。 形物体的类别(.NET例如) ,然后将项目的名称(.NET核心,.Net的框架) 管理要上的网址

+2

你是什么意思_generate控制器和动作方法的动态_? –

+1

在此问题中提出http://stackoverflow.com/questions/3303801/how-to-achieve-a-dynamic-controller-and-action-method-in-asp-net-mvc –

回答

1

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

如果您需要制作动态驱动的路线,解决方案是inherit RouteBase,因此您可以添加URL和/或指定在运行时应引用哪个控制器。您应该像示例中那样缓存URL列表,但没有理由不能修改缓存,以便在应用程序中添加个别URL时可以逐个添加它们(将它们添加到缓存和数据源一气呵成,所以它们都是立即可用的)。