C# 复制带有代码隐藏的单个aspx页时发生分析器错误
当我只是将带有代码隐藏的aspx页面复制(未部署)到网站时,当我尝试使用该页面时,会收到一条解析器错误消息 假设这只是为了测试,我想在VisualStudio中开发一个页面,然后将其复制(或FTP)到一个网站 完整的错误消息是:C# 复制带有代码隐藏的单个aspx页时发生分析器错误,c#,asp.net,visual-studio,copy,code-behind,C#,Asp.net,Visual Studio,Copy,Code Behind,当我只是将带有代码隐藏的aspx页面复制(未部署)到网站时,当我尝试使用该页面时,会收到一条解析器错误消息 假设这只是为了测试,我想在VisualStudio中开发一个页面,然后将其复制(或FTP)到一个网站 完整的错误消息是: Parser Error Message: Could not load type 'SimpleSite.WebForm2'. WebForm2.aspx文件是: <%@ Page Language="C#" AutoEventWireup="true" Co
Parser Error Message: Could not load type 'SimpleSite.WebForm2'.
WebForm2.aspx文件是:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs"
Inherits="SimpleSite.WebForm2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
</form>
</body>
我不确定名称空间是否是问题所在,它似乎是。我使用ExpressionWeb创建了一个ASP.Net文件,其背后的代码可以通过FTP传输
但是它没有名称空间(是的,我知道;它在全局名称空间中)
如果我想使一个或两个带有代码隐藏的aspx文件仅用于教育目的而不进行部署,我可以使用Visual Studio Web项目或网站进行复制,并维护该页面,使其仍然作为Visual Studio Web项目或网站中的页面使用吗?是的,命名空间是一个问题 Visual Studio为没有指定命名空间的网站创建页面,换句话说,它使用全局命名空间中的代码创建页面。因此,在VS网站中创建的简单页面(不使用其他文件)可以通过仅复制aspx文件和相应的aspx.cs文件来单独复制
Web项目和Web站点之间的另一个区别是VS为每个页面添加一个aspx.designer.cs文件。它不是为网站创建的。您需要作为网站而不是Web应用程序项目来创建它。您需要复制它的任何依赖项。这是因为网站是动态编译的,不像Web App project。@mason,您知道它可以作为网站使用吗?还是您在猜测?无论我是使用一个Web项目还是使用一个Web站点来创建它,代码都是相同的,但是如果我遗漏了什么,请解释一下区别。当我使用一个网站时,我会得到同样的结果。此外,我还提供了所有代码。错误消息的哪一部分表示缺少某些内容?网站在部署之前不必编译.aspx.cs,因此我知道它可以工作。网站和Web应用程序项目的代码不应相同。如果它们是相同的,那么它们就错了。@mason,如果你能够创建一个简单的页面,就像我在网站上展示的那样,然后将其复制到服务器上并使其工作,那么我肯定有兴趣知道你是如何做到的。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace SimpleSite
{
public partial class WebForm2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
TextBox2.Text = TextBox1.Text;
}
}
}