"ASP.global_asax does not exist in the namespace ASP"
"ASP.global_asax does not exist in the namespace ASP"
我在 App_Code
上创建了一个 RazorFunctions.cshtml 文件
@functions {
public static string GetActiveClassIf(string controllerName, string actionName = null)
{
var routeData = @HttpContext.Current.Request.RequestContext.RouteData;
string currentController = routeData.Values["controller"].ToString();
string currentAction = routeData.Values["action"].ToString();
return controllerName == currentController &&
(String.IsNullOrEmpty(actionName) || currentAction == actionName) ? "active" : "";
}
}
当我编译时,它给了我 2 个错误(编译成功并且站点工作没有问题)但是这些错误很烦人。
RazorFunctions.cshtml 作为内容(已尝试编译,但当然不适用于 cshtml 文件)
Global.asax.cs 是:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
ModelMetadataConfig.RegisterModelMetadata();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());
//Database.SetInitializer(new DropCreateDatabaseAlways<ApplicationDbContext>());
}
}
和
<%@ Application Codebehind="Global.asax.cs" Inherits="Bouron.Web.MvcApplication" Language="C#" %>
这是我第一次使用App_Code所以我不知道还能做什么,所有搜索returnsASP.NET1-2个结果,都过时了剃须刀根本不存在,所以我不确定如何解决这个问题。
我正在使用 Visual Studio 2015(以防万一)
放在App_Code文件夹中的代码处理方式有点不同,它是在运行时编译的。 cshtml 文件是 'Content',所以这可能是您出错的原因。在您的项目中创建普通文件夹,将其命名为 Code 或类似的名称(但不是 App_Code)并将您的文件放在那里。
我遇到了同样的问题。
我手动编辑了生成的文件 file.cshtml.72cecc2a.cs
(它位于 AppData\Local\Temp\Temporary ASP.NET Files\root
)并将 ASP.global_asax
更改为 System.Web.HttpApplication
,错误消失了。
这是生成的代码:
protected static ASP.global_asax ApplicationInstance {
get {
return ((ASP.global_asax)(Context.ApplicationInstance));
}
}
我改成了:
protected static System.Web.HttpApplication ApplicationInstance {
get {
return ((System.Web.HttpApplication)(Context.ApplicationInstance));
}
}
虽然我不知道为什么会这样。
经过进一步调查,我发现这是一个已知问题。
来源:https://support.microsoft.com/en-us/kb/3025133
ASP.NET 和网络开发
当您创建 Web Forms 4.5 WAP 并打开 Web Form 页面时,您在错误列表 window 中收到以下错误:
该项目将 运行 没有任何问题。错误 CS0234 类型或命名空间名称 'global_asax' 在命名空间 'ASP' 中不存在(是否缺少程序集引用?)
错误 CS0234 命名空间 'System' 中不存在类型或命名空间名称 'Linq'(是否缺少程序集引用?)
假设您在 Visual Studio 2015 RC 中使用 C# 和 VB 的新语言功能。当您在 Web 窗体页面或 Razor 视图中使用 C# 或 VB 时收到 运行 时间错误。
要解决此问题,请安装 Microsoft.CodeDom.Providers.DotNetCompilerPlatform NuGet 包。此软件包将用基于 Roslyn 的提供程序替代 ASP.NET.
的内置 CodeDom 提供程序
我为解决此问题所做的两件事是重新定位框架然后将其改回(使用 4.5.1 将其更改为 4.5 并返回)
在此之后,我在使用 T4MVC 时出现了很多错误,我将其升级到最新版本,但我可以在源代码管理中看到 T4MVC 是针对框架 4.5 安装的,当你 re/install一个新的 nuget 包,它更改了目标框架,因此已更改为 4.5.1
在此之后一切正常。我没有测试你是否只需要做这个答案的第二部分,但我会先试试。
我解决这个错误的方法是将我的代码形式 Global.asax.cs 移动到 Startup.cs 并删除 Global.asax 这样我的项目中就没有任何代码隐藏文件了。有关详细信息,请参阅 this question。
我为我的 Web 项目安装了 Microsoft.CodeDom.Providers.DotNetCompilerPlatform,然后删除了软件包。错误消失了。
我发现如果 App_Code
中的文件在 Visual Studio 2015 年 运行 构建时打开,那么我不会收到错误。一旦我关闭文件,错误就会再次出现。
在尝试了这里提出的各种解决方案后,发现只需退出 Visual Studio 2015 然后重新启动它就足以让 Solution/Project 再次成功编译。
只需右键单击您的解决方案项目,然后单击“清理”。我已经做到了,它确实对我有用。我分享这个是因为谁知道它是否对其他人有帮助就像它对我有帮助一样。
我在 App_Code
上创建了一个 RazorFunctions.cshtml 文件@functions {
public static string GetActiveClassIf(string controllerName, string actionName = null)
{
var routeData = @HttpContext.Current.Request.RequestContext.RouteData;
string currentController = routeData.Values["controller"].ToString();
string currentAction = routeData.Values["action"].ToString();
return controllerName == currentController &&
(String.IsNullOrEmpty(actionName) || currentAction == actionName) ? "active" : "";
}
}
当我编译时,它给了我 2 个错误(编译成功并且站点工作没有问题)但是这些错误很烦人。
RazorFunctions.cshtml 作为内容(已尝试编译,但当然不适用于 cshtml 文件)
Global.asax.cs 是:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
ModelMetadataConfig.RegisterModelMetadata();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());
//Database.SetInitializer(new DropCreateDatabaseAlways<ApplicationDbContext>());
}
}
和
<%@ Application Codebehind="Global.asax.cs" Inherits="Bouron.Web.MvcApplication" Language="C#" %>
这是我第一次使用App_Code所以我不知道还能做什么,所有搜索returnsASP.NET1-2个结果,都过时了剃须刀根本不存在,所以我不确定如何解决这个问题。
我正在使用 Visual Studio 2015(以防万一)
放在App_Code文件夹中的代码处理方式有点不同,它是在运行时编译的。 cshtml 文件是 'Content',所以这可能是您出错的原因。在您的项目中创建普通文件夹,将其命名为 Code 或类似的名称(但不是 App_Code)并将您的文件放在那里。
我遇到了同样的问题。
我手动编辑了生成的文件 file.cshtml.72cecc2a.cs
(它位于 AppData\Local\Temp\Temporary ASP.NET Files\root
)并将 ASP.global_asax
更改为 System.Web.HttpApplication
,错误消失了。
这是生成的代码:
protected static ASP.global_asax ApplicationInstance {
get {
return ((ASP.global_asax)(Context.ApplicationInstance));
}
}
我改成了:
protected static System.Web.HttpApplication ApplicationInstance {
get {
return ((System.Web.HttpApplication)(Context.ApplicationInstance));
}
}
虽然我不知道为什么会这样。
经过进一步调查,我发现这是一个已知问题。
来源:https://support.microsoft.com/en-us/kb/3025133
ASP.NET 和网络开发
当您创建 Web Forms 4.5 WAP 并打开 Web Form 页面时,您在错误列表 window 中收到以下错误:
该项目将 运行 没有任何问题。错误 CS0234 类型或命名空间名称 'global_asax' 在命名空间 'ASP' 中不存在(是否缺少程序集引用?) 错误 CS0234 命名空间 'System' 中不存在类型或命名空间名称 'Linq'(是否缺少程序集引用?) 假设您在 Visual Studio 2015 RC 中使用 C# 和 VB 的新语言功能。当您在 Web 窗体页面或 Razor 视图中使用 C# 或 VB 时收到 运行 时间错误。
要解决此问题,请安装 Microsoft.CodeDom.Providers.DotNetCompilerPlatform NuGet 包。此软件包将用基于 Roslyn 的提供程序替代 ASP.NET.
的内置 CodeDom 提供程序我为解决此问题所做的两件事是重新定位框架然后将其改回(使用 4.5.1 将其更改为 4.5 并返回)
在此之后,我在使用 T4MVC 时出现了很多错误,我将其升级到最新版本,但我可以在源代码管理中看到 T4MVC 是针对框架 4.5 安装的,当你 re/install一个新的 nuget 包,它更改了目标框架,因此已更改为 4.5.1
在此之后一切正常。我没有测试你是否只需要做这个答案的第二部分,但我会先试试。
我解决这个错误的方法是将我的代码形式 Global.asax.cs 移动到 Startup.cs 并删除 Global.asax 这样我的项目中就没有任何代码隐藏文件了。有关详细信息,请参阅 this question。
我为我的 Web 项目安装了 Microsoft.CodeDom.Providers.DotNetCompilerPlatform,然后删除了软件包。错误消失了。
我发现如果 App_Code
中的文件在 Visual Studio 2015 年 运行 构建时打开,那么我不会收到错误。一旦我关闭文件,错误就会再次出现。
在尝试了这里提出的各种解决方案后,发现只需退出 Visual Studio 2015 然后重新启动它就足以让 Solution/Project 再次成功编译。
只需右键单击您的解决方案项目,然后单击“清理”。我已经做到了,它确实对我有用。我分享这个是因为谁知道它是否对其他人有帮助就像它对我有帮助一样。