#asp.net #class #razor #webmatrix #app-data
#asp.net #класс #razor #веб — матрица #приложение-данные #webmatrix
Вопрос:
Я перепробовал все решения, которые я нашел в stackoverflow, но, похоже, я не могу получить доступ к классу, который я создал в папке App_Data.
Если у меня есть этот класс (отображается только часть класса):
public class Encryption
{
public string Encrypt(string plainText, string Key)
{
byte[] key = StringToByteArray(Key);
string encrypted = ByteArrayToHexString(encryptStringToBytes_AES(plainText, key, null));
return encrypted;
}
}
Я должен иметь доступ к нему в блоке кода, подобном:
@{
Encryption enc = new Encryption();
var data = enc.Encrypt("hello", "world");
}
Но я получаю сообщение об ошибке, что тип или пространство имен «Шифрование» не могут быть найдены.
Я также пытался импортировать его с помощью пространства имен, но, похоже, не удается отобразить имя моего приложения в качестве пространства имен, кажется, проще в asp.net mvc.
Я перепробовал все примеры, которые смог найти для обновления моего файла конфигурации, но безрезультатно. Есть ли что-то, что мне нужно сделать, чего мне здесь не хватает?
Ответ №1:
Я наконец нашел ответ, мне пришлось создать папку App_Code и поместить туда класс, чтобы на него можно было ссылаться.
Я думаю, это потому, что я создал приложение в WebMatrix, а не в VS2010. Итак, имя моего веб-сайта (MyWebsite) не соответствует пространству имен, как название проекта в VS2010. Это означает, что если я помещу класс шифрования в папку с именем Utilities, я не смогу этого сделать:
@using MyWebsite.Utilities
Обратите внимание, что приложение WebMatrix, использующее стартовый сайт, не добавляет папку App_Code автоматически.
Ну, вернемся к кодированию!
Ответ №2:
Классы в App_data не компилируются. Это для SQL CE, экспресс-баз данных и специфичных для приложения данных, а не кода. Создайте другую папку в корне и переместите файл класса туда или поместите его в корень вашего проекта.
Комментарии:
1. Изначально он был у меня в подпапке (Утилиты), и я не мог видеть код. Я где-то читал, что файлы cs должны быть в папке app_data, поэтому я переместил его туда, но все еще не мог его увидеть. Итак, я просто переместил его в корень, и я все еще не могу использовать класс.
2. Вы создали решение (Ctrl Shift B)?