无法在WebMatrix(razor)App_Data文件夹中访问我的类

时间:2011-11-07 00:04:17

标签: asp.net class razor webmatrix app-data

我已尝试过在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中看起来更简单。

我尝试了所有可以找到的更新配置文件的示例,但无济于事。我有什么需要做的,我在这里失踪吗?

2 个答案:

答案 0 :(得分:5)

我终于找到了答案,我必须创建一个App_Code文件夹并将该类放在那里以便它可以参考。

我认为这是因为我在WebMatrix中创建了应用程序,而不是在VS2010中。因此,我的网站(MyWebsite)的名称并不等同于VS2010中项目名称所做的命名空间。这意味着如果我将Encryption类放在名为Utilities的文件夹中,我就不能这样做:

@using MyWebsite.Utilities

请注意,使用Starter Site的WebMatrix应用程序不会自动添加App_Code文件夹。

好吧,回到编码!

答案 1 :(得分:2)

App_data中的类未编译。它适用于SQL CE,Express数据库和特定于应用程序的数据而不是代码。从根目录创建另一个文件夹并将类文件移到那里或将其放在项目的根目录下。