我需要能夠在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