2009-08-09 125 views
6

当我创建一个ASP.NET项目时,Default.aspx页面所在的命名空间是什么?ASP.NET命名空间

,以及如何找到项目中的任何其他ASP.NET页面的命名空间?

我正在使用VS2005。我首先创建了一个空白的解决方案,然后添加一个网站。

当我点击右键按钮,转到“添加新网站” - 菜单我发现下面的模板ASP.NEt网站已(1模板),然后我说这个我SLN。

我正在使用C#和VS2005。在这种情况下,这与VS2008不匹配。在问题页面(在你的情况Default.aspx.cs)

+0

这取决于项目类型。你正在创建一个新的“Web应用程序”或创建一个新的“网站”? – blowdart 2009-08-09 15:12:12

+0

那还是很不回答的问题,你添加了什么类型的网站?有两个网站和Web应用程序(我不能更确切地说,我没有在这台机器上的2005) – blowdart 2009-08-09 15:17:37

+0

这是在vb或c#? – meandmycode 2009-08-09 15:20:10

回答

9

网站没有/支持命名空间。 Web应用程序。

要回答这个问题,因为创建新的“站点”,命名空间不发挥作用。至于如何从Webform页面访问其他WebForm页面类,我没有想到这个原因。我不认为这是可行的(纠正我,如果我错了)。

无论如何有办法避开。如果您在一个webforms的类中使用了一些可重用的业务/ UI /其他逻辑,只需将这些方法移出App_Code下的XXX.cs文件即可。没有必要使用名称空间,并且可以在所有的WebForm类中使用它。

+0

我需要继承.aspx页面。 – 2009-08-09 16:06:30

+3

你的意思是你有一个basepage.aspx和一个codebind类“basepage”。你有一个newpage.aspx有一个“newpage”类来监听“basepage”吗?如果是这样,请阅读: http://www.west-wind.com/WebLog/posts/3016.aspx “要注意什么”。希望这可以帮助。 – 2009-08-09 16:41:40

2

看代码隐藏。你会看到你的名字空间。 Aspx是对使用分部类声明进行合并的代码隐藏类的补充。

我刚刚创建了一个新的Web应用程序项目。这是什么代码隐藏看起来像:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace WebApplication1 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 
    } 
} 

所以你看到“WebApplication1”命名空间。你看,对吧?

新增:所以我创建了一个网站项目再次检查出来。好的,我确认,我没有看到任何名称空间声明。谷歌搜索一点点后,我发现这个帖子:

asp.net - Web Site vs. Web Application(链接固定)

新编译模型抛出了Visual Studio项目文件本身,asp.net拿回了“编译导通飞行“概念,除之外的所有内容都不再使用网站内的名称空间,并彻底改变了UI模板和相关代码隐藏的安排方式。

从外观上看,它只是抛出所有类,包括页面类和您通常放入App_Code文件夹的自定义逻辑类。即使我将这些对象封装在自定义命名空间中,类查看器也不会显示页面对象,但它在App_Code文件夹中与声明的命名空间一起正确地执行。我想VS团队中的人并不意味着你关心页面类的命名空间。

+0

你住哪个星球?在任何asp.net代码隐藏文件中都没有名称空间声明。 – 2009-08-09 15:06:48

+1

你在开玩笑吗?给我一分钟,我会给你一个例子。 – 2009-08-09 15:08:01

+0

我正在使用VS2005,我从未在我的Web项目中看到过这种情况。 – 2009-08-09 15:13:22

2

尝试定义在应用程序代码目录的接口,并具有隐藏文件的代码实现的接口。