Asp.net 如何制作Visual Studio;编撰;一个.aspx文件?

Asp.net 如何制作Visual Studio;编撰;一个.aspx文件?,asp.net,.net,asp.net-mvc,visual-studio,Asp.net,.net,Asp.net Mvc,Visual Studio,在我的ASP.NET MVC应用程序中,我有一个.aspx文件。我在VisualStudio2010项目浏览器树中选择它,然后转到文件属性——“构建操作”设置为“内容”。我将“构建操作”更改为“编译”,并要求VisualStudio构建项目。我在编译器输出中收到.aspx文件的以下错误消息: C:\PathToProject\MyFile.aspx(1,1): error CS0234: The type or namespace name 'global_asax' does not

在我的ASP.NET MVC应用程序中,我有一个.aspx文件。我在VisualStudio2010项目浏览器树中选择它,然后转到文件属性——“构建操作”设置为“内容”。我将“构建操作”更改为“编译”,并要求VisualStudio构建项目。我在编译器输出中收到.aspx文件的以下错误消息:

C:\PathToProject\MyFile.aspx(1,1): error CS0234: The type or namespace name 'global_asax'
    does not exist in the namespace 'ASP' (are you missing an assembly reference?)
.aspx文件的第一行是:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/My.Master" Inherits="System.Web.Mvc.ViewPage" %>

这让我想知道


编译器试图抱怨什么?我如何让它编译.aspx文件?

正如@KennyZ所说,aspx/ASCX/Master/CSHtml文件不是“编译”的,也不是常规构建过程的一部分。这是因为这些文件在第一次请求时被编译成页面类,这是为了允许网站管理员在运行中修改这些文件,这通常是一个好主意,尤其是当ASPX文件包含大量内容时

请注意,VS File Properties构建操作不控制此设置-我认为
BuildAction
属性应该隐藏或至少有更好的文档记录-开发人员社区对它不是很了解

但这是可以做到的!在VS2005中,当他们引入命运多舛的“web站点”项目(在VS2005 SP1问世之前,作为VS2003“web应用程序”的替代品)时,有一个选项可以将ASPX/ASCX/Master文件预编译到应用程序的程序集中-它确实留下了不包含任何内容的存根*.ASPX文件,而是引用了预编译的页面类

您仍然可以使用VS2010执行此操作,但需要使用命令行
aspnet\u compiler.exe
,因为它不适用于Web应用程序项目

此处提供了更多文档:


这里:

视图的.aspx必须将其构建操作设置为内容

要在生成时启用预编译(或至少编译器错误检查),请添加

    <MvcBuildViews>true</MvcBuildViews>
true

给你的第一个。csproj

未编译ASPX文件。您想做什么?@KennyZ:我希望在项目生成期间从Visual Studio中调用ASP.NET预编译。将预编译的是Yor.cs或.vb文件,而不是.aspx。该设置应在项目属性中,并且您不必更改任何单个文件的设置。您是否正在查找此类:System.Web.Compilation.ClientBuildManager?这是执行此操作的首选方法,但我要补充的是,您应该制作一份
.csproj
的副本(当您破坏它时)当你用你最喜欢的文本编辑器编辑它时,确保它没有在VS中打开(否则VS在我的经验中并不总是正确地重新加载它)。这不会预编译,这只会验证页面。