【发布时间】:2014-11-27 00:46:21
【问题描述】:
所以我正在尝试将网站项目转换为 Web 应用程序项目。我创建了新的 Web 应用程序项目,移动了文件,为每个 ASPX 和 ASCX 文件创建并填充了设计器文件,并包含了这些文件。完成后,我跑遍并纠正了一些小问题,但一切都很好......除了一些用户控件。
所以我有用户控件,其中包含 之类的内容,对应于类后面代码中的公共属性。 Visual Studio 现在显示“当前上下文中不存在名称‘消息’。”从制作新控件和重新键入代码到尝试更新的
<%@ 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;
}
}
【问题讨论】:
-
您的代码隐藏中的代码是否正在编译?
-
构建操作设置为编译。由于此问题引起的 ASCX 文件中的错误,整个项目现在无法编译。所以我不能告诉你它是否有效。
-
嗯... ASCX 文件通常不应该是编译的一部分。 ASCX/ASPX 文件仅在首次运行时编译。
-
我来自的网站项目类型而不是我将要使用的 Web 应用程序项目类型难道不是这样吗? (Web 应用程序在构建时被编译成单个 DLL,IIS 将其加载到内存中并运行。或者这是我的理解。)此外,我正在使用一个新的 Usercontrol 文件,而不是我移动的文件。我希望默认设置是正确的。也许我以某种方式把它们搞砸了,但我并没有过多地胡闹。
-
不;预编译页面/控件是另一回事。我总是使用网络应用程序,并且由于断开连接而处理过奇怪的事情;就像重命名某些东西,编译,但后来意识到我也没有在 ASPX 中重命名它。该应用程序仍然可以编译,但在加载涉及的页面时,您会从 Web 服务器收到编译错误
标签: c# asp.net web-applications code-behind webusercontrol