我有一種CMS應用程序允許創建內容頁面併爲它們指定url。 我想,讓用戶輸入任何網址,如:如果頁面url存儲在數據庫中,MVC路由
/Documents/Forms/MyForm
/Documents/Manuals/MyManual
/Events/BBQThisWeek
然後我需要創建,如果在數據庫中,如果是存在與給定URL的內容頁面,將檢查的路線,將路線控制器處理內容頁面。如果不是,它將繼續使用默認路由。
怎樣運用呢? 謝謝 V.
我有一種CMS應用程序允許創建內容頁面併爲它們指定url。 我想,讓用戶輸入任何網址,如:如果頁面url存儲在數據庫中,MVC路由
/Documents/Forms/MyForm
/Documents/Manuals/MyManual
/Events/BBQThisWeek
然後我需要創建,如果在數據庫中,如果是存在與給定URL的內容頁面,將檢查的路線,將路線控制器處理內容頁面。如果不是,它將繼續使用默認路由。
怎樣運用呢? 謝謝 V.
您將很可能必須設置自定義處理程序。看看選項三here
你可以從數據庫讀取動作調用者。
創建一個擴展路由
類public class CustomRoute : Route
{
public override RouteData GetRouteData(System.Web.HttpContextBase httpContext)
{
var routeData = base.GetRouteData(httpContext);
if(routeData != null)
{ do some stuff on routeData... }
return routeData;
}
public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
{
// Do the opposite of the first function
}
}
編輯: 最簡單的方法就是延長Route
和使用base.GetRouteData然後將數據令牌「控制器」和「行動」只是改變你想要什麼