Я собираюсь упростить мою декларацию маршрута вокруг моего проекта asp.net mvc.Поэтому я создал несколько методов для этого.
context.MapExtendedRoute("Home".MergeWithAreaName(context),
"www".MergeWithAppDomain(),
"123".MergeWithDefaultRouteKeys(),
new {Controller = "Home", Action = "Index"}.MergeWithDefaultRouteValues(),
new {}.MergeWithDefaultRouteConstraints());
С первыми тремя методами проблем нет.Но метод 4 и 5 возвращает недопустимое значение.Начальная подпись (например, MergeWithDefaultRouteValues) выглядит примерно так:
public static object MergeWithDefaultRouteValues(this object defaultValues) {
return new RouteValueDictionary(defaultValues) {{"Culture", "SomeValue"}};
}
, который возвращает вывод, подобный этому (из RouteDebugger):
Count = 3, Keys = System.Collections.Generic.Dictionary`2+KeyCollection[System.String,System.Object], Values = System.Collections.Generic.Dictionary`2+ValueCollection[System.String,System.Object]
Вы не видите ни одного из ключей / значенийверно!Кто-нибудь может сказать мне, как я могу это выяснить?
Подпись MapExtendedRoute:
MapExtendedRoute(this AreaRegistrationContext context, string name, string domain, string url, object defaults, object constraints)
Заранее спасибо;)