ASP.NET 命名空间
Posted
技术标签:
【中文标题】ASP.NET 命名空间【英文标题】:ASP.NET Namespace 【发布时间】:2010-11-18 02:27:52 【问题描述】:当我创建 ASP.NET 项目时,Default.aspx 页面所在的命名空间是什么?
以及如何找到项目中任何其他 ASP.NET 页面的命名空间?
我正在使用 VS2005。我首先创建了一个空白解决方案,然后向其中添加了一个网站。
当我单击右键并转到“添加新网站” - 菜单时,我找到以下模板 ASP.NEt WebSites(第一个模板),然后我将其添加到我的 sln。
我正在使用 C# 和 VS2005。在这种情况下,这将与 VS2008 不匹配。
【问题讨论】:
这取决于项目类型。您是在创建新的“Web 应用程序”还是创建新的“网站”? 那还是不太能回答问题,你加的是什么类型的网站?有两个,网站和web应用(我不能更准确,我这台机器上没有2005) 查看更新。 【参考方案1】:查看相关页面的代码隐藏(在您的情况下为 Default.aspx.cs)。在那里你会看到你的命名空间。 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 团队的人并不是要你关心页面类的命名空间。
【讨论】:
你住在哪个星球?在任何 asp.net 代码隐藏文件中都没有命名空间声明。 你在开玩笑吗?给我一分钟,我给你举个例子。 我正在使用 VS2005,但我从未在我的 Web 项目中看到过这种情况。 我在 VS2008 Pro 中做了这个例子,我相信我在使用 VS 2005 时看到了或多或少相同的东西。也许你正在创建网站项目而不是 Web 应用程序项目?那里的组织有些不同。【参考方案2】:网站没有/支持命名空间。 Web 应用程序可以。
要回答这个问题,既然创建了一个新的“网站”,命名空间就不会发挥作用。至于如何从 Webform 页面访问其他 WebForm 页面类,我还没有找到原因。而且我不认为这是可行的(如果我错了,请纠正我)。
总之有办法解决。如果您在 Web 表单的一类中使用了一些可重用的业务/UI/其他逻辑,只需将这些方法移出到 App_Code 下的 XXX.cs 文件中。不需要命名空间,您可以在所有 webform 类中使用它。
【讨论】:
我需要继承.aspx页面。 你的意思是你有一个带有代码绑定类“basepage”的basepage.aspx。你有一个 newpage.aspx,它有一个继承“basepage”的“newpage”类?如果是这样,请阅读:west-wind.com/WebLog/posts/3016.aspx 在“注意事项”部分下。希望这会有所帮助。【参考方案3】:尝试在应用程序代码目录中定义一个接口,并让您的代码隐藏文件实现该接口。
【讨论】:
以上是关于ASP.NET 命名空间的主要内容,如果未能解决你的问题,请参考以下文章
C# ASP.NET ASP.NET#命名空间"System.Data"中不存在类型或命名空间名称"Linq"(是否缺少程序集引用?)