ASP.NET массив Пространства имен Контроллера MVC

Добавьте ContentView на свою страницу и замените его содержимое на то, каким будет ваш вид вкладки при нажатии.

<ContentView x:Name="_contentView">
</ContentView>

Затем в cs при нажатии измените его содержимое по мере необходимости:

 if (_contentView.Content != _tabView1)
 {
     _contentView.SetContent(_tabView1);
 }
9
задан JB King 4 May 2009 в 15:18
поделиться

2 ответа

Хорошо, поэтому после дальнейшего тестирования, я выяснил, что это не фильтр, точно, но это отчасти также. Я дал Вам кредит 'ответа' даже при том, что Вы частично неправы.

Так, это действительно, в конце концов, действует как, я думал, что это должно, который должен сказать, что это снимает неоднозначность. В основном логический поток - что-то вроде этого:

  • Ищите пространство имен в _cache, который соответствует один в массиве пространств имен
    • если это найдено, ищите контроллер правильного имени
    • - если это найдено, возвратите его
    • - если бы это не найдено, еще возвратите поиск везде, что это обычно смотрело бы
  • если это не найдено, поиск везде Лесе

Так, короче говоря, моя мысль, что массив пространств имен служил бы для устранения неоднозначности, была корректна. Причина, которая мой первый тест в том отказавшем отношении - то, что это только делает идеальную пару, и я сделал ошибку использования просто корня n/s от блока (в других словах, MyRoot вместо MyRoot. Контроллеры).

То, что эта вещь пространств имен позволяет, затем, должно иметь HomeController в двух различных пространствах имен и соответствовать им по-другому в зависимости от URL или параметрических усилителей.

5
ответ дан 4 December 2019 в 21:51
поделиться

Нет, значение не удерживается от использования. Это используется в DefaultControllerFactory.cs. Обратите внимание, что, если значение предоставляется, оно полностью заменяет искавшие пробелы стандартного имени. Когда параметр не предоставляется, пространства имен, искавшие наше решительное:

HashSet<string> nsDefaults = new HashSet<string>(ControllerBuilder.DefaultNamespaces, StringComparer.OrdinalIgnoreCase);

Когда параметр предоставляется, список, Вы предоставляете замены это значение.

В любом случае, вызовах DefaultControllerFactory:

GetControllerTypeWithinNamespaces(controllerName, nsDefaults);

... со списком или тот Вы предоставили, или значение по умолчанию. Таким образом, ясно, что значение поддерживается.

При рассмотрении исходного кода там, и в ControllerTypeCache Вы видите реальную цель значения пространств имен: Это не заставляет фабрику контроллера смотреть в местах, которые иначе не посмотрели бы; скорее это - фильтр. Другими словами, это препятствует тому, чтобы фабрика контроллера по умолчанию смотрела и пространства имен, что это иначе искало бы контроллеры.

4
ответ дан 4 December 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: