我需要能够在NancyFx动态路线。考虑一个博客或动态CMS,它使用url-slugs来标识特定的博客/页面。我想,如果它是用NancyFx编写的,那么SO会做这样的事情...NancyFx的动态路线
由于可能有成千上万个不同的url-slugs(页面内容从数据库中提取),所以预先构建一个路由表不是最好的方法。
我试着做以下,我NancyModule
的构造函数:
public HomeModule()
{
...
foreach (var page in pages)
{
Get(page.Slug, args => GetPage(page.Slug));
}
}
这种类型的作品,但具有以下限制:
路由是一次构建,在Web应用程序的开始处(NancyFx缓存它在开始时发现的所有路线)。无法识别任何可能在运行时动态添加的新路线(具有其独特的slu pages的页面或博客条目)。
所有路线都是预建的,即使只有少数人可能会被访问。如果页面/独特的slu list的数量是成千上万,这是非常浪费的。
任何人都可以提出在NancyFx动态路由策略,那就是 - 与独特的蛞蝓页面动态添加 - 我怎么路线的不同蛞蝓默认PageModule?此外,预定义模块及其路线仍应该受到尊重。例如,我想这些URL路由到HomeModule
:
/
/topic1
/topic2
/topic3
...
(和任何数量的其他议题,除以下具体列出),但下面有自己的模块处理它们,即如果有与冲突塞定义页/博客文章,这将是不可到达的:
/admin
/gallery
/image
注意:如果可能的话,我特别要避免在URL专门的模块段的需求,如/page/{page-slug}
。如果page-slug
没有在另一个模块中预定义,我想要全部HomeModule
来处理它。
我不应该在半夜问问题。来吧,看看你的答案,看起来很明显。 :-)谢谢你的详细解释。 – Optimax