视觉工作室网站 - 许多随机错误,但仍在建设?

时间:2011-05-12 13:37:36

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

我之前有一个人写的ASP.NET网站,我不认为他们使用VS来构建他们的网站,但不幸的是我不确定他们使用了什么。

我打开网站并构建..没有错误。

当我打开任何页面或类时,智能感知几乎所有内容,从

开始

错误25语句不能出现在方法体/多行lambda之外。

关于using语句,但字面上每行都有错误。但仍然很好。

我有什么想法可以解决这个问题?我仍然可以建立网站,但如果我犯了任何真正的错误,我不知道他们来自哪里,我也没有智能感知。

编辑 - 如果我打开网站上最简单的文件之一的示例。

using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class About : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        Master.bodyClass = "about"; 
    }

}

错误列表直接转到单个文件的71个错误。

Error   26  Syntax error.   PATH\about.aspx 1   PATH\   1
Error   27  Syntax error.   PATH\about.aspx 1       PATH\   1
Error   28  Syntax error.   PATH\about.aspx 1   PATH\   1
Error   29  'Class' statement must end with a matching 'End Class'. PATH\about.aspx 1   PATH\   1
Error   30  Declaration expected.   PATH\about.aspx 1   PATH\   1
Error   31  Bracketed identifier is missing closing ']'.    PATH\about.aspx 1   PATH\   1
Error   33  End of statement expected.  PATH\about.aspx 1   PATH\   1
Error   34  Syntax error.   PATH\about.aspx 1   PATH\   1

(包含前8个错误,已更改已删除项目名称/路径)

它仍然可以正确构建(错误似乎不会打扰编译器),但是使它很难处理。

编辑 -

aspx文件的第1行

<%@ Page MasterPageFile="~/master.master" CodeFile="index.aspx.cs" Inherits="About" %>

10 个答案:

答案 0 :(得分:14)

Visual Studio认为您的ASPX文件是VB.Net而不是C#。

更改Web.config中的默认语言(<compilation defaultLanguage="C#">)。

答案 1 :(得分:3)

有同样的问题。这里没有一个解决方案适合我。我的语言已经在ASPX文件和web.config中设置为C#。

在我的案例中的解决方案似乎在于排除ASPX&amp;代码隐藏文件,然后编译项目 - VS抱怨丢失的文件!

然后将文件包括在内以清除问题。

答案 2 :(得分:1)

更进一步,验证在.aspx文件中,代码以“&lt;%@ Page Language =”C#“..”开头。这个操作已经在答案中描述,但我会注意到它不起作用如果页面开头有评论线! Visual Studio 2010不会验证声明之前的文本是否为“&lt; %@ Page /&gt;“是评论与否。

示例:

<%--<asp:Label Text="This is a comment"></asp:Label>--%>
<%@ Page Language="C#" ... %>

在这个例子中,VS 2010认为页面不是从Page声明开始,而是在Label声明中,因此,C#代码无法识别......

答案 3 :(得分:1)

旧线程,但上述解决方案都没有为我工作,因为它持续存在。我的修复是完全从项目中排除aspx文件并再次包含它。不知道为什么上述建议都没有起作用,但Intellisense似乎又开心了。

作为旁注:如果这是任何人都尝试过的解决方案,请确保Show All Files已在Solution Explorer办理登机手续,否则您的文件将在排除后隐藏。

答案 4 :(得分:0)

如果这是一个ASP.Net WebForms网站,那么.aspx和.ascx中的标记仅在运行时编译。

要编译标记,请使用aspnet_compiler。 (另见this question

更新 Re:aspx文件的第1行

<%@ Page MasterPageFile="~/master.master" CodeFile="index.aspx.cs" Inherits="Home" %>

因此该文件名为about.aspx,后面的代码是index.aspx.cs,页面的类名是Home ??

答案 5 :(得分:0)

一个很长的镜头,但通常当我遇到这样的错误时,我会检查以确保如果我引用任何其他项目,那么每个项目都在同一个目标框架上。您可以通过Alt + Enter在VS中的项目上检查并检查目标框架。

答案 6 :(得分:0)

我遇到了同样的问题。我遇到了这个问题,当我复制.aspx代码并将其粘贴到一个“测试页面”中时,我用它作为参考,我的项目中包含了错误的参考。我删除了该测试页面中的内容。 intellisense开始工作正常。检查项目是否已将aspx内容复制到其他位置。这应该可以解决你的问题。

答案 7 :(得分:0)

问题是由复制并粘贴.aspx xml代码引起的。您可以从整个项目中排除问题文件。然后将它们添加回去,问题就会得到解决。

答案 8 :(得分:0)

我知道回答已经太晚了,但也许有人正在寻找答案。 我有同样的问题,在我的情况下它有效,所以第一行是:

<%@ Page Language="C#" AutoEventWireUp="True" CodeBehind="reservas.aspx.cs" Inherits="CapaWeb.reservas"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- saved from url=(0014)about:internet -->
<html>
<head runat="server">

我必须确保第一行(我认为最重要的)和&#34; runat = server&#34;

此外,在添加这些行之后,我关闭了所有类。重建解决方案,错误消失。

答案 9 :(得分:0)

我有同样的问题,视觉工作室建议关闭并重新打开该文件。关闭并重新打开我的固定问题。我不明白为什么?!! : - \