我之前有一个人写的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" %>
答案 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)
我有同样的问题,视觉工作室建议关闭并重新打开该文件。关闭并重新打开我的固定问题。我不明白为什么?!! : - \