2010-05-14 95 views
0

我有一個MVC應用程序,其路線定義與最終路線是一個捕獲所有路由到一個「PageController」的數據庫驅動的頁面集合。我想要實現的是能夠嚮應用程序插入第二個控制器,以捕獲第一個控制器傳遞給它的所有路由,前提是它沒有找到數據庫中收到的url。級聯MVC控制器與CatchAll路線

有效我要排隊與捕捉控制器的所有操作:

public ActionResult PageCatchall(string url) 
{ 
    var page = repository.Get<Page>(string url); 
    if (page != null) 
    { 
     // Handle the request 
     return View(page) 
    } 
    // Otherwise pass to a new controller 

    ???? 
} 

任何人有任何好的想法,如何解決這個問題?我已經嘗試了RedirectToAction,但是這要求下一個控制器具有到該操作的不同路由。我嘗試過ActionInvoker,但是這種方式沒有按照我的方式工作。

回答

0

儘管我會避免像這樣的複雜路由,但我認爲最好的做法是使用custom route constraint,它使用緩存列表pages來匹配正確的路由(已成功完成)。

我會爲你留下確切的實施練習。 ; o)