A.は何をルーティングしていますか?
URLの一種の表現の(ユニフォームリソースロケータ)は、URLは、呼び出されたメソッドにマップされます。
概念を変える:( リソースのURLは、必ずしも、Webサーバー上の静的ファイルを意味するものではありません)。
II。なぜルーティングを使うのか?
- 標準化されたコードのインデントと同じように、これは、コードの品質を向上させることにあるURLの重要性です。
- URLをマッピングする物理ファイルを使用しての欠点を解消しなければなりません。
- インジェクション攻撃を防ぎ、セキュリティを向上させます。URLコンテンツと従来のディスクは、直接の対応関係は、要求は、それが安全であるコントローラのルーティング動作にマッピングされているサイトのURLディレクトリ構造によって決定することができる持っています。
- あなたは、URLの各部分を制約することができます。
III。どのようにルートを定義するには?
ASP.NET MVCプロジェクトの作成、アプリケーションファイル(Global.asax.cs)を開き、あなたはApplication_Startメソッドで呼び出しRouteConfig.RegisterRoutes方法を見ることができ、この方法は、ローカル制御ルートに集中することです。
F12は、メソッドを定義し、それが中にファイル/App_Start/RouteConfig.cs。
A.特性ルート
ルーティング特性を有効にするMapMvcAttributeRoutes()メソッドを呼び出します。
ルーティング特性は、定義により、経路の特性によって定義されます。
コントローラ内の空のホームコントローラを追加します。
1.特性ルートを追加する方法
(URLがある場合は/インデックス要求は、インデックスメソッドが実行されます)
(経由/、/インデックスにアクセスすることができます)
2.ルーティング値(動的ルーティング)
/インデックス/暁明は、このルートに一致します。それは、次のような中括弧、中にプレースホルダを作成します。
質問:次の状況下で、「/インデックス」そのルートにマッチしますか?
結論:静的>移動
3.コントローラルーティング
書き込み([ルート(コントロール名/ ACTIONNAME)])ルーティングの方法は、それが時間のコントローラ(複数可)は、ルーティング機能を追加することができるコードを複製するかどう。
使用特殊なルーティングパラメータアクション
(CAN /ホーム/インデックス/ホーム/についての概要とアクセスインデックス法です)
ルーティング番号の割り当て方式によって提供されるデフォルトパラメータ=
(要求がある場合には、デフォルトの要求インデックス/ホーム)
たか?いいえルート定義のオプションパラメータ
この時間/ホーム/ 1で、その後、なぜならURLかの二つに、404を要求するプロンプトが表示されます場合は、それが行動に合わせて、「1」を入れます。
4.制約ルート
あなたが要求し、この時、「/について/ 2」の要求が明確ではありませんプロンプトが表示されます
結合を介して解決
(引数はint型の値であるときについてのみ、最初に一致します)
このように、インライン制約と呼ばれる制約ベースのルーティングテンプレートに、多くがあります。
II。従来のルーティング
戻るRegisterRoutes方法、クリアコードは、従来のルーティングを追加します
コントローラとアクションパラメータは、それらが従来のルーティングパラメータに、制御装置及び方法にマッピングされ、特別な必要がある、言葉は「コントローラ」の値が必要なルーティングを含んでいないことを示唆し、500でエラーが報告されません。
従来のルーティングより柔軟なルーティング構文規則
{コントローラ} / {アクション} / {ID} {コントローラ} - {アクション} - {ID} {コントローラ} - {アクション} {ID}
...
これらは、上記の有効なルートです。
三番目のパラメータのデフォルト値からMapRoute
パブリック 静的 ボイドRegisterRoutes(RouteCollectionルート) { // ルーティングマップ指定されたURL routes.MapRouteを(" シンプル"、" {コントローラ} / {アクション} / {ID} "、新しい新しい{ ID = UrlParameter.Optional、 // セットIDパラメータはオプションで 、アクション= 「インデックス」 // アクションパラメータインデックスの設定されたデフォルト値 ;}) }
ルーティング制約のでMapRoute第四のパラメータ値