Когда я помещаю файлы классов в подпапки моей папки App_Code, я получаю следующую ошибку:
errorCS0246: не удалось найти тип или имя пространства имен MyClassName (вам не хватает директивы using или ссылки на сборку?)
Этот класс вообще не находится в пространстве имен. Есть идеи?





Возможно ли, что вы не установили папку как приложение в IIS (или на своем веб-сервере)? Если нет, то используется App_Code из папки родитель (или следующего приложения выше).
Убедитесь, что папка помечена как приложение и использует правильную версию ASP.NET.
Когда вы добавляете папки в свой app_code, они разделяются разными пространствами имен, если я правильно помню, используя пространство имен по умолчанию в качестве корня, а затем добавляя для каждой папки.
Вам нужно добавить codeSubDirectories к вашему элементу компиляции в web.config
<configuration>
<system.web>
<compilation>
<codeSubDirectories>
<add directoryName = "View"/>
</codeSubDirectories>
</compilation>
</system.web>
</configuration>
Проверьте свойство BuildAction файла. Это должно быть установлено на "Скомпилировать".
Возможно, это неправильный способ, но я считаю его самым простым.
Создайте класс в основной папке как обычно, затем переместите его мышью в подпапку. Перекомпилируйте, и все будет в порядке.
В Visual Studio (по крайней мере, 2010, но я помню и прошлые версии) вы можете щелкнуть правой кнопкой мыши папку в обозревателе решений и выбрать «Включить в проект».
Затем на вкладке свойств для каждого файла (или выберите их все сразу) вы выбираете «Скомпилировать» для свойства «Действие при сборке».
Это сработало для меня.
Классы в моей папке App_Code работают напрямую, если я помещаю App_Code / View или что-то еще, я получаю ошибку для классов в подкаталоге View