ASP.NET页面指令导致错误

时间:2012-07-03 16:22:27

标签: c# visual-studio-2010 visual-studio-2008

我有一个展示最奇怪行为的页面。在构建/调试我的项目时,我有时会收到指向我的页面指令的构建错误。

如果我在指令中的任何两个属性之间插入一个额外的空格,则错误消失并且构建成功。

页面指示:

<%@ Page Language="C#" AutoEventWireup="true" EnableSessionState="true" CodeBehind="myPage.aspx.cs" Inherits="com.mycompany.UserControls.myPage" %>

导致的错误:

Keyword, identifier, or string expected after verbatim specifier: @ C:\mypath\myPage.aspx   1   1   myProjectName

A namespace cannot directly contain members such as fields or methods   C:\mypath\myPage.aspx   1   1   myProjectName

重申一下,例如,在PageLanguage="C#"之间添加额外空格会暂时清除错误。我将在下一次构建中看到100%的成功率,但错误最终会再次出现。我通常可以通过关闭显示myPage.aspx的编辑器并构建/重建我的项目来强制执行错误。

注意:此行为在Visual Studio 2008中出现,在切换到Visual Studio 2010后仍然存在。

修改:更正了有问题的网页指令中省略@的拼写错误。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您是否错过了开头&lt;%和Page关键字之间的@符号?

<% Page Language="C#" AutoEventWireup="true" EnableSessionState="true" CodeBehind="myPage.aspx.cs" Inherits="com.mycompany.UserControls.myPage" %>

它应该是

<%@ Page Language="C#" AutoEventWireup="true" EnableSessionState="true" CodeBehind="myPage.aspx.cs" Inherits="com.mycompany.UserControls.myPage" %>

答案 1 :(得分:1)

您的&lt;%@ Page ......

中缺少@符号