1

.NETFrameworkv4.0で実行されているASP.NETMVC3プロジェクトのエリア登録に次のものがあります。

context.MapRoute(null,
                 "YardJob/{location}/{from}",
                 new { controller = "YardJob", 
                       action = "List", 
                       from = DateTime.Now });

私の質問は、ルーティングエンジンが「from」のデフォルトルート値を使用する場合、コントローラーのListメソッドは常に現在の日付と時刻で呼び出されますか?

デフォルトルート値がリクエスト間で再利用される原因となる可能性のあるルーティングエンジンのキャッシュはありますか?

ありがとう、

4

2 に答える 2

1

受け入れられた答えが説明するように、これは不可能です。ただし、完全を期すために、これを回避する方法は次のとおりです。

ルート:

context.MapRoute(null,
    "YardJob/{location}/{from}",
     new { controller = "YardJob", 
     action = "List", 
     from = UrlParameter.Optional }
);

コントローラのアクション:

public ActionResult List (string location, DateTime from)
{
    if (from == null)
        from = DateTime.Now;
}
于 2013-03-14T18:44:30.633 に答える
0

ルートを登録するプロセスはアプリケーションの起動時に実行されるため、DateTimeを入力すると、fromフィールドのデフォルトのパラメーターはアプリケーションの起動時刻になり、AppPoolがリサイクルされるときにのみ変更されます。

アプリケーションが起動するとき?ASP.NETアプリケーションの最初のリソース(ページなど)が要求されたとき。Global.asaxのApplication_Startメソッドは、アプリケーションのライフサイクル中に1回だけ呼び出されます。このメソッドを使用して、データのキャッシュへのロードや静的値の初期化などの起動タスクを実行できます。

ライフシクルをチェックしてください

于 2013-03-14T17:35:50.643 に答える