C# 在将网站项目转换为Web应用程序项目之后,为什么我无法使用内联代码访问代码隐藏文件的公共字段?
因此,我试图将一个网站项目转换为一个web应用程序项目。我创建了新的web应用程序项目,移动了文件,为每个ASPX和ASCX文件创建并填充了设计器文件,并包含了这些文件。完成后,我在这里和那里运行并纠正了一些较小的事情,但一切都很好。。。除了一些用户控件C# 在将网站项目转换为Web应用程序项目之后,为什么我无法使用内联代码访问代码隐藏文件的公共字段?,c#,asp.net,web-applications,code-behind,webusercontrol,C#,Asp.net,Web Applications,Code Behind,Webusercontrol,因此,我试图将一个网站项目转换为一个web应用程序项目。我创建了新的web应用程序项目,移动了文件,为每个ASPX和ASCX文件创建并填充了设计器文件,并包含了这些文件。完成后,我在这里和那里运行并纠正了一些较小的事情,但一切都很好。。。除了一些用户控件 因此,我有一些用户控件,其中包含类似的内容,对应于代码隐藏类中的公共属性。VisualStudio现在说“名称‘Message’在当前上下文中不存在。”我已经尝试了所有方法,从创建新控件和重新键入代码到尝试更新的我很久以前忘记了更新它。因此,对
因此,我有一些用户控件,其中包含类似的内容,对应于代码隐藏类中的公共属性。VisualStudio现在说“名称‘Message’在当前上下文中不存在。”我已经尝试了所有方法,从创建新控件和重新键入代码到尝试更新的我很久以前忘记了更新它。因此,对于任何面临类似情况的人,我会给你两个信息
代码中的代码是否正在编译?生成操作设置为编译。由于此问题导致ASCX文件中出现错误,项目作为一个整体目前无法编译。所以我不能告诉你它是否有效。嗯。。。ASCX文件通常不应作为编译的一部分。ASCX/ASPX文件只在第一次运行时编译。对于我来自的网站项目类型,而不是我将要使用的web应用程序项目类型,不是这样吗?(Web应用程序在构建时被编译成一个DLL,IIS将其加载到内存中并运行。或者这是我的理解。)此外,我正在使用一个新的Usercontrol文件,而不是我移动过的文件。我希望默认设置是正确的。也许我把他们搞砸了,但我没有胡闹太多;预编译页面/控件是另一回事。我总是使用网络应用程序,并且在历史上处理过由于断开连接而产生的奇怪事情;比如重命名某个东西,编译,但后来意识到我也没有在ASPX中重命名它。该应用程序仍在编译,但当加载相关页面时,您会从web服务器收到一个编译错误。我已经面临这个问题好几个月了,但我仍然不知道如何消除这些错误。我仅有的错误是您的错误。1:尝试删除任何内联代码。2:确保在为引发错误的ASPX文件指定代码隐藏文件时指定了完整的命名空间和类名。内联代码正是我想要的,例如
。它正在抛出错误,但仍在编译和运行。删除它并不是真正的修复方法。
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DoubleHrBanner.ascx.cs" Inherits="Test.ctrl.misc.DoubleHrBanner" %>
<hr class="faded" />
<span><%=Message %></span>
<hr class="faded" />
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Test.ctrl.misc
{
public partial class DoubleHrBanner : System.Web.UI.UserControl
{
public string Message = "";
public int Count = 0;
}
}