我目前正在尝试清理我在这里继承的一些公司网站。我设法清理了网站上的大部分错误,但仍有一些问题在这里。
我有一个包含此代码的母版页:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class MasterPage : System.Web.UI.MasterPage {
public lists m_listsClass = new lists();
(不,这不是列表中S的错字)。
现在在App_code中我有一个类lists.cs
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
/// <summary>
/// Summary description for lists
/// </summary>
public class lists
{
public lists()
{
当我尝试在visual studio 2008中构建网站时,我有这样的错误:
Error 3 The type or namespace name 'lists' could not be found (are you missing a using directive or an assembly reference?) C:\Users\egirard\Documents\Visual Studio 2008\Projects\iFuzioncorp\iFuzioncorp\Masters\MasterPage.master.cs 23 12 iFuzioncorp
我错过了什么吗?
我也在服务器上看到了一些奇怪的行为。显然根据IIS7,它正在使用.net 2.0进行编译(池配置了.net 2)但是有一些"using
“语句包含Linq ...如果Linq不是其中的一部分,如何编译页面是可能的。网2本身?
刚编辑了代码本身的新闻详细信息。到处都没有命名空间。
你好 - 我有类似的问题;我的所有命名空间和继承都已到位。然后我注意到类文件的构建操作设置为“内容”而不是“编译”(在属性窗口中)。
对于任何值得在几个月后得到答案(可能不是正确的答案),我想我应该做出贡献:
当您将网站放在另一个网站(即子文件夹中)时,会发生这种情况。在这种情况下,唯一合法的App_Code文件夹是外部网站的App_code文件夹。也就是说,主网站根目录下的App_Code文件夹。
如果将类文件放在ROOT网站的App_code文件夹中,也许(比如说)可能不需要将您的网站转换为Web应用程序。
包括定义列表类的命名空间
要么
在同一名称空间下定义母版页和列表类
最后我最近才明白这是一个网站,而不是一个网络应用程序,我不得不质疑这里的人来获取它......所以我所有错误都很正常。我没有机会先转换它。
确保在您的母版页中,您有一个列表类所属的命名空间的#include语句(如果它们位于单独的命名空间中,则母版页不会自动获取它)。
至于奇怪的服务器端行为,.NET 2.0,3.0和3.5都在IIS中的.NET 2.0应用程序池中运行。起初看起来很奇怪,但你已经习惯了。这是一个更深入探索的链接:
要使用类型,必须引用定义它的程序集并包含相应的名称空间。
仅使用包含名称空间,如果不使用所述名称空间中的任何类型,则它不起作用。
是包含在命名空间中的lists.cs吗?如果是这种情况,那么您需要添加命名空间(yournamespace.lists)或将其包含在母版页中。还检查您的MasterPage是否在命名空间中
这对我有用。
我自己有这个问题
它没有工作,因为我引用的项目在其属性中设置为控制台应用程序而不是类库