1

コントローラーを1つだけにしたいサイトを構築しています。URLは次のようになります。

\main-page\sub-page

main-pageコントローラーではなくsub-page、アクションでもありません。データベース内のページの名前にすぎず、その場でレンダリングしたいものです。つまり、多くのページがあり、それぞれにコントローラーを作成したくありません。実際、次のような 1 つのアクションをHome持つ 1 つのコントローラーだけが必要です。Index

Function Index(ByVal Page As String, ByVal SubPage As String) As ActionResult

また、パラメーターを使用してページ コンテンツを動的に読み込むビューは 1 つだけです。

次のルートはほとんど機能します。

    routes.MapRoute(
        "Default", _
        "{page}/{subpage}", _
        New With {.controller = "Home", .action = "Index", .page = "Landing", .subpage = "Index"}
    )

/images/somefile.jpgしかし、問題は、ルートと一致するため、たとえば などのファイルの要求も取得していることです。

問題は、画像リクエストを誤って取得せずにこれを行うにはどうすればよいか、または私がやろうとしていることをサポートするためにルートを実行するまったく別の方法がありますか?

4

1 に答える 1

0

ルートを無視してみてください

routes.IgnoreRoute("{*alljpg}", new {alljpg=@".*\.jpg(/.*)?"});

これは、おそらくこの短い投稿よりも役立つこの記事に基づいています。

正直なところ、完全な推測ではありません。ファビコンに関連する問題があり、追加のリクエストが発生しました。以下のコードはそれを解決したので、プリンシパルは健全です

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
于 2012-06-21T13:18:43.260 に答える