ASP.NET:突然,当前上下文中不存在名称“form1”?

时间:2010-10-21 08:54:27

标签: c# asp.net webforms dynamic-web-controls

过去三周我一直在开发这个应用程序,并且出于某种原因决定在五分钟前停止工作,尽管我显然没有做任何事情。

在Default.aspx中:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AppName.Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html"; charset=utf-8 />
    <title></title>

    <script>(A bunch of script declarations, etc)

</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>

在default.aspx.cs中:

public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        System.Web.UI.HtmlControls.HtmlGenericControl g = new System.Web.UI.HtmlControls.HtmlGenericControl();

        //(Dynamically builds a load of html to insert into the form)

        form1.Controls.Add(g);
    }
}

我突然得到编译器错误'名称'form1'在当前上下文中不存在'尽管显然没有对这些文件中的任何一个进行任何更改。 Intellisense似乎无法在文件中的任何范围内看到它。

有谁知道为什么?

3 个答案:

答案 0 :(得分:1)

检查form1是否存在于设计器文件(default.aspx.designer.cs)中,因为我怀疑它丢失了

答案 1 :(得分:1)

在VS的Build菜单中,尝试运行“Clean Solution”然后运行Build。

答案 2 :(得分:0)

在头部声明中没有runat =“Server”的问题,我必须在两周前更改并且Visual Studio已经设法在今天没有问题,尽管有几个项目的完全重建。典型的微软。