ASP.NET网站 - 默认命名空间

时间:2012-11-28 15:11:32

标签: asp.net

在Visual Studio中,您可以使用以下屏幕为VB.NET应用程序设置默认命名空间:

enter image description here

您可以对ASP.NET Web应用程序的Visual Studio项目执行相同的操作。它不适用于ASP.NET网站,为什么?我在网站上看到了这个:

enter image description here

4 个答案:

答案 0 :(得分:3)

由于ASP.NET Web站点的分发和编译方式,没有理由使用默认命名空间,因为每个ASP.NET文件都是在第一次加载页面时动态编译并转换为自己的DLL(“ “做ASP.NET的旧方法”。

然而,对于Web应用程序,一堆代码隐藏文件(以及可能的其他代码文件)被预编译到单个DLL中,然后创建一种将所有这些文件放入单个命名空间的好主意。

您可以将其视为网站的集合,但Web应用程序是一个统一的整体。

答案 1 :(得分:1)

简短回答:网站项目缺少Web应用程序项目的许多功能。

有关详细比较,请参阅ASP.NET: Web Site or Web Application?

答案 2 :(得分:0)

网站不会创建网址,但网络应用会创建。要为网站创建dll,请使用web_deploy项目。

答案 3 :(得分:0)

我正在使用网站,我需要一种方法来访问我的Global.asax文件中的BundleConfig,IdentityConfig和RouteConfig类和模块。我能够将这些文件放入“App_Code”文件夹中,该文件夹允许您在类和模块周围放置名称空间。

以下是一个例子:

Namespace TCEmpSite
    Public Module RouteConfig
        Sub RegisterRoutes(ByVal routes As RouteCollection)
            Dim settings As FriendlyUrlSettings = New FriendlyUrlSettings()
            settings.AutoRedirectMode = RedirectMode.Permanent
            routes.EnableFriendlyUrls(settings)
        End Sub
    End Module
End Namespace

然后在Global.asax文件中我能够做到这一点:

Private Sub Application_Start(sender As Object, e As EventArgs)
        ' Code that runs on application startup
        TCEmpSite.RouteConfig.RegisterRoutes(RouteTable.Routes)
        TCEmpSite.BundleConfig.RegisterBundles(BundleTable.Bundles)
        TCEmpSite.IdentityConfig.ConfigureIdentity()
    End Sub

希望这有助于某人!