1

ASP.NET MVC を使い始めたばかりで、ルーティングに関する質問が 2 つあります。

  1. ASP.NET MVC で次のルートを設定するにはどうすればよいですか?

    domain.com/about-us/
    domain.com/contact-us/
    domain.com/staff-bios/

    URLを短くするために、実際のURLにコントローラーを指定したくありません。URL が次のように見えた場合:

    domain.com/company/about-us/
    domain.com/company/contact-us/
    domain.com/company/staff-bios/
    

    CompanyController を追加し、about-us、contact-us、staff-bios の ActionResults を設定して、適切なビューを返すことができるので、私にとってはより理にかなっています。私は何が欠けていますか?

  2. Global.asax の既定のルーティング規則で、"既定" という名前にはどのような目的がありますか? 何かに使われていますか?

ありがとうございました!

4

3 に答える 3

3

最初に 2 番目の質問にお答えします。「デフォルト」は単なるルートの名前です。これは、ルートから URL を生成する場合など、ルートを名前で参照する必要がある場合に使用できます。

これで、設定したい URL について、常に同じコントローラーをデフォルトとして指定しても問題ない限り、コントローラー パラメーターをバイパスできます。ルートは次のようになります。

{action}/{page}

これは、意図しない多くの URL に一致するため、他のルートの後に宣言されていることを確認してください。したがって、最初に他のルートに亀裂を入れたいと考えています。次のように設定します。

routes.MapRoute(null, "{action}/{page}", 
                 new { controller = "CompanyController", action = "Company", page = "contact-us" } );

もちろん、MyDefault コントローラーのアクション メソッド "Company" には " string page" パラメーターが必要ですが、これでうまくいくはずです。Company メソッドは、ページ パラメーターが何であれ、View が存在するかどうかを確認するだけで、存在しない場合は 404 を返し、存在する場合は View を返します。

于 2009-07-23T18:38:28.960 に答える
0

ルートの設定とPhilHaackについて言えば、彼のルートデバッガーは非常に貴重であることがわかりました。これは、特定のルートが他のルートの代わりに使用されている理由がわからない場合や、特別なルーティングシナリオ(前述のようなもの)の設定方法を学習する場合に最適なツールです。これは、他のどのリソースよりも、ルート作成の複雑さの多くを解決するのに役立ちました。

于 2009-07-23T18:54:09.087 に答える