【问题标题】:Parser error copying a single aspx page with code-behind使用代码隐藏复制单个 aspx 页面的解析器错误
【发布时间】: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


【解决方案1】:

是的,命名空间有问题。

Visual Studio 为没有指定命名空间的网站创建页面,换句话说,它使用全局命名空间中的代码创建页面。因此,在 VS 网站中创建的简单页面(不使用附加文件)可以通过仅复制 aspx 文件和相应的 aspx.cs 文件来单独复制。

Web 项目和网站的另一个区别是 VS 为每个页面添加了一个 aspx.designer.cs 文件。它不是为网站创建的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    • 2011-06-23
    • 2012-09-27
    • 2016-09-04
    相关资源
    最近更新 更多