2011-06-22 9 views
3

コンテンツページを作成してURLを指定できるCMSアプリケーションがあります。 私はのように、ユーザーが任意のURLを入力してみましょうしたいと思います:ページURLがデータベースに格納されている場合のMVCルーティング

/Documents/Forms/MyForm 
/Documents/Manuals/MyManual 
/Events/BBQThisWeek 

その後、私は与えられたURLとコンテンツページがDBに存在し、YESの場合、へのルートがするかどうかをチェックしますルートを作成する必要がありますコンテンツページを処理するコントローラ。そうでない場合、デフォルトのルートで続行されます。

私はこれにどのようにアプローチしますか? ありがとう V.

答えて

0

カスタムハンドラをセットアップする必要があります。オプション3を見てくださいhere

あなたはアクションインボーカーのデータベースから読むことができます。

0

ルート

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を使用することです を
関連する問題