2011-01-05 9 views
0

私は特別なパラメータ{controller}{action}を知っていますが、私はブログ/投稿が{controller}/{action}/{*id}のような特別なパラメータで投げたのを見ました。アスタリスクの他に、使用できる他の特殊文字は何ですか?それらをどのように使用しますか?MVCルートの特殊パラメータはどのように使用しますか?

さらに、私は経路制約の使い方を混同しています。私には理にかなっている一般的なマップは、制約オブジェクト内

routes.MapRoute("Blog", 
       "Blog/{d}/{m}/{y}", 
       new { controller = "Blog", action = "Post" }, 
       new { d = @"\d{1,2}", m = @"\d{1,2}", y = @"\d{4}" } 
); 

ある、DMYすべてが理にかなっているURL内のパラメータに対応します。人々は、このような

contentType = new ContentTypeConstraint(ConstraintContentType.JSON) 

または

contentTypeIsRootActionを定義しているオブジェクト
IsRootAction = new IsRootActionConstraint() 

として存在していないパラメータに制約に投げ始めるとき、私も読んだいくつかのブログで、私はオフにスローされます?これらの2つ以外のプロパティはありますか?

UPDATE 私はいくつかの検索を行いましたが、フードの下でnew { controller = "Blog"}がRouteValueDictionaryに変換されていることがわかりました。これは基本的にちょっと省略したものです。私が興味を持ったパラメータ(IsRootActionとContentType)は、辞書のキー名に過ぎません。

答えて

0

アクション制約は、MVCフレームワークで定義されているか、コードで定義されています(モデルであることが望ましい)。MVCインターフェイスIRouteConstraintを実装する。

Action Constraintがどのように定義されているかについては、この回答を参照してください。これは、具体的にはIsRootActionContraintに関する質問です。

Having trouble with a simple MVC route

Iは{* ...}表記を見ていない、一般的な構文は、各カール-括弧名が一致するURLから抽出されたパラメータであることです。

+0

このプロジェクトの{...?}構文への参照が見つかりました:http://maproutes.codeplex.com/?オプションを意味します。しかし、私はこの構文に精通しておらず、これらの制御文字の要約を自分自身で見つけることができませんでした。 – Derrick

関連する問題