将网站项目转换为 Web 应用程序项目后,为什么我无法使用内联代码访问代码隐藏文件的公共字段

本文关键字:代码 项目 访问 字段 隐藏文件 Web 转换 网站 应用程序 为什么 | 更新日期: 2023-09-27 18:30:23

所以我正在尝试将网站项目转换为Web应用程序项目。我创建了一个新的 Web 应用程序项目,移动了这些文件,为每个 ASPX 和 ASCX 文件创建并填充了设计器文件,并包含这些文件。完成后,我在这里和那里跑过并纠正了一些小事情,但一切都很好......除了少数用户控件。

所以我有用户控件,其中有 <%=消息 %> 之类的东西,对应于类后面代码中的公共属性。 Visual Studio 现在说"名称'消息'在当前上下文中不存在。我已经尝试了从创建新控件和重新键入代码到尝试较新的 <%: 速记标签的所有方法。似乎没有什么能让VS"看到"该属性。

<%@ 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;
  }
}

将网站项目转换为 Web 应用程序项目后,为什么我无法使用内联代码访问代码隐藏文件的公共字段

我很久以前忘了更新这个。因此,对于任何面临类似情况的人,我会给你两点信息。

  1. 如果您正在VS2013中查找"转换为Web应用程序"按钮,则该按钮已从上下文菜单中移出。在"解决方案资源管理器"中选择要转换的项,然后单击 VS 顶部的"项目>转换为 Web 应用程序"。

  2. 如果您在转换后有>300 个编译器错误,并且 VS 对内联代码有很大的影响,请忽略它。首先修复所有其他错误,一旦所有代码隐藏和依赖代码隐藏(例如用户控件中的用户控件)和 VS 最终将自身组合在一起并停止无缘无故地在内联代码上引发错误。