【发布时间】:2016-04-15 15:15:13
【问题描述】:
当我只是将带有代码隐藏的 aspx 页面复制(而不部署)到网站时,当我尝试使用该页面时会收到解析器错误消息。
假设这只是为了测试目的,我想在 Visual Studio 中开发单个页面,然后将其复制(或 FTP)到网站。
完整的错误信息是:
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>
WebForm2.aspx.cs 文件是:
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;
}
}
}
我不确定命名空间是否是问题所在,看来是。我使用 Expression Web 创建了一个带有代码隐藏的 ASP.Net 文件,我只能通过 FTP 但它没有命名空间(是的,我知道;它在全局命名空间中)。
如果我想制作一个或两个带有代码隐藏的 aspx 文件,只是为了教育目的而无需部署即可复制,我可以使用 Visual Studio Web 项目或网站来做到这一点,并维护页面使其仍然可以正常工作Visual Studio Web 项目或网站中的页面?
【问题讨论】:
-
您需要将其作为一个网站,而不是一个 Web 应用程序项目。而且您需要复制它所具有的所有依赖项。
-
这是因为网站是动态编译的,不像 Web App 项目。
-
@mason,您知道它将作为一个网站运行还是您在猜测?无论我使用 Web 项目还是网站创建代码,代码都是相同的,但如果我遗漏了什么,请解释其中的区别。当我使用网站时,我会得到相同的结果。另外,我提供了所有代码。错误消息的哪一部分表明缺少某些内容?
-
网站不必在部署之前编译 .aspx.cs,所以是的,我知道它会起作用。网站和 Web 应用程序项目的代码不应相同。如果它们相同,则它们是错误的。
-
@mason,如果您能够像我在网站上展示的那样创建一个简单的页面,然后将其复制到服务器并使其正常工作,那么我肯定有兴趣了解您是如何工作的做到了。
标签: c# asp.net visual-studio copy code-behind