5

現在のASAXコード(簡略化):

void Application_Start(object sender, EventArgs e) 
{        
    // Enable routing
    RegisterRoutes(RouteTable.Routes);
}

void RegisterRoutes(RouteCollection routes)
{
    routes.Add("ContactUsRoute",
               new Route("contact-us", 
               new PageRouteHandler("~/contactus.aspx")));
}

質問

この時点でDBからルートをプルしても安全ですか?例えば:

void RegisterRoutes(RouteCollection routes)
{
    routes.Add("ContactUsRoute",
               new Route("contact-us", 
               new PageRouteHandler("~/contactus.aspx")));

    // BusinessLogic.GetPageRoutes() returns a List<Route>
    var dbRoutes = BusinessLogic.GetPageRoutes();

    foreach (Route route in dbRoutes)
    {
        routes.Add(route);
    }
}

追加情報

この質問は、ルーティングに関する知識の欠如と、の一般的な不慣れから生まれましたglobal.asaxglobal.asax以前は、非常に単純なタスクにしか使用していませんでした。DBは私がそれを別のレベルに引き上げているように感じます。

4

1 に答える 1

1

安全ですか

「安全」とは何ですか、なぜこれはそうではないのですか?

ルーティングは文字列を使用して構築されます。コードは、ハードコードされているか、リソースファイル、Webサービス、テキストファイル、データベースなど、それらの文字列がどこから来ているかは関係ありません。

データベースが利用できないときにエラーページを表示するためのデフォルトルートがあることを確認している限り、(おそらく最初のヒットでのパフォーマンスの低下を除いて)なぜこのようにしないのかわかりません。 。

于 2013-03-12T16:14:01.710 に答える