在 Visual Studio 中,您可以使用以下屏幕为 VB.NET 应用程序设置默认命名空间:
您可以对作为 ASP.NET Web 应用程序的 Visual Studio 项目执行相同的操作。它不适用于 ASP.NET 网站,为什么?我在一个网站上看到了这个:
在 Visual Studio 中,您可以使用以下屏幕为 VB.NET 应用程序设置默认命名空间:
您可以对作为 ASP.NET Web 应用程序的 Visual Studio 项目执行相同的操作。它不适用于 ASP.NET 网站,为什么?我在一个网站上看到了这个:
由于 ASP.NET 网站的分发和编译方式,没有理由使用默认命名空间,因为每个 ASP.NET 文件都是在第一次加载页面时动态编译并转换为自己的 DLL(“旧方式”做 ASP.NET)。
但是,对于 Web 应用程序,一堆代码隐藏文件(以及可能的其他代码文件)被预编译到单个 DLL 中,这会造成将所有这些文件放入单个命名空间中的好主意。
你可以把它想象成一个 Web Site 是一个 Web Pages 的集合,而一个 Web Application 是一个统一的整体。
简短的回答:网站项目缺少 Web 应用程序项目所具有的许多功能。
请参阅ASP.NET:网站还是 Web 应用程序?进行详细比较。
我正在使用网站,我需要一种从 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
希望这对某人有帮助!
网站不会创建 dll,但会创建网络应用程序。要为网站创建 dll,请使用 web_deploy 项目。