2

我是一位经验丰富的桌面 .net 开发人员,但这是我第一次尝试使用 ASP.NET,我几乎马上就被难住了。

我使用了 VS2008“新网站”向导,得到了一个简单的页面,代码隐藏页面等等。但是我下一步为一些实用程序方法添加一个简单的静态类以供所有页面使用,这根本没有成功。

我尝试将代码放入 App_Code 中,我尝试创建一个新的库项目并引用它......在 Visual Studio 中一切总是编译得很好,但是当上传到服务器时它只是拒绝找到命名空间/类或识别图书馆大会。我试过弄乱 web.config,但找不到任何方法来引用库程序集(例如,“*”似乎没有这样做)。

服务器页面显示:版本信息:Microsoft .NET Framework 版本:2.0.50727.3074;ASP.NET 版本:2.0.50727.3074

是否有实用方法的最佳实践方法,以及如何让我的代码隐藏页面识别除自身之外的任何类(或更好的命名空间,甚至程序集)?

我得到的确切错误是:CS0246:找不到类型或命名空间名称“MyCommon”(您是否缺少 using 指令或程序集引用?)

4

6 回答 6

5

您最好忽略网站“项目”。它们在 Visual Studio 世界中是独一无二的,因为它们不是项目(没有 .csproj 或其他类似文件)。对于任何非网站开发人员来说,它们看起来非常奇怪和违反直觉。

相反,使用 File->Add New Project,然后选择“ASP.NET Web Application”。这将创建一个 Web 应用程序项目,该项目将按照您的预期工作得更多。您甚至可以在您喜欢的任何文件夹中添加类,它们将按照您的预期工作。

于 2009-06-06T21:02:36.393 回答
2

我假设您确实有一个using指向命名空间的语句?

我不时看到的东西...在服务器上,您(在 IIS 中)是否将新文件夹标记为“应用程序”?它应该在 IIS 中有一个 cog。如果您没有,那么它将在错误的位置查找 App_Code(“应用程序”告诉它本地应用程序根目录在哪里)。右键单击,属性,“创建应用程序”(或类似的东西 - 我手头没有服务器......)

于 2009-06-06T20:53:34.303 回答
1

当该类不在App_Code 中时,我看到了此错误...

另一方面,您可以从ASP.NET 应用程序而不是网站开始。它们是 2 种不同的应用程序模型,应用程序变体在添加类和程序集方面更容易一些。

于 2009-06-06T21:04:29.213 回答
0

确保您的帮助程序类与网络表单位于相同的命名空间中 - 或完全限定您正在调用的特定帮助程序方法。你能提供一些你想要做什么的代码吗?

于 2009-06-06T20:57:31.690 回答
0

确保通过发布网站将项目移至服务器。此外,您可能希望使用Web 应用程序项目(新建->项目->Web->Web 应用程序项目)而不是新网站。它可能会表现得更像你期望的那样。

于 2009-06-06T21:01:44.257 回答
0

我会避免使用网站项目,因为它确实给我们的团队带来了很多麻烦,类似于您在此处描述的内容。相反,您应该使用更清晰、更适合多项目解决方案的Web Application 项目模型。

但是,如果您必须坚持使用网站项目模型,则应确保将项目的引用 (MyCommon) 添加到 Web 应用程序,然后在要使用的类中创建 using 语句。

于 2009-06-06T21:10:35.393 回答