Мне известны специальные параметры {controller}
и {action}
, но я видел, что блоги / сообщения добавляли специальные параметры, такие как {controller}/{action}/{*id}
.Кроме звездочки, какие еще специальные символы доступны для использования и как их использовать?
Кроме того, я запутался в том, как использовать ограничения маршрута.Общая карта, которая имеет для меня смысл:
routes.MapRoute( "Blog",
"Blog/{d}/{m}/{y}",
new { controller = "Blog", action = "Post" },
new { d = @"\d{1,2}", m = @"\d{1,2}", y = @"\d{4}" }
);
В объекте ограничения d , m и y все соответствуютпараметры в URL, что имеет смысл.Однако в некоторых блогах, которые я читал, меня раздражают, когда люди начинают добавлять ограничения на несуществующие параметры, такие как
contentType = new ContentTypeConstraint(ConstraintContentType.JSON)
или
IsRootAction = new IsRootActionConstraint()
Какой объектcontentType
и IsRootAction
определены?Есть ли еще какие-либо свойства помимо этих двух?
ОБНОВЛЕНИЕ Я провел еще несколько поисков и обнаружил, что под капотом new { controller = "Blog"}
преобразуется в RouteValueDictionary.Это в основном просто стенография.Параметры, которые мне были интересны (IsRootAction и ContentType), являются просто ключевыми именами словаря, не более того.