在网络API中托管网络表单页面。 CS0103控件在当前上下文中不存在

时间:2019-05-10 19:59:50

标签: asp.net asp.net-web-api webforms

我需要将ASP.NET Web表单页面添加到我的ASP.NET API项目中。这是一个旧版应用程序,我还没有时间移植到API和Angular。旧版页面包含多个控件,包括文本框,下拉列表和GridView控件。该Web表单的所有代码逻辑都包含在代码隐藏页面中。

我遇到的问题是,当我尝试重建项目时,无法识别旧版Web窗体中的控件。我收到以下错误

Error CS0103 The name '<name of web control>' does not exist in the current context MyWebApp C:\source_code\MyWebApp\api\services\LegacyWebForm.aspx.cs

对于ASPX页面上的所有服务器端控件,我都会收到这些错误之一。

我非常确定我可以在API应用程序中运行此旧版Web表单,而我要做的就是添加...

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

文件LegacyWebForm.aspx.cs后面的代码继承自System.Web.UI.Page,而ASPX页面继承了页面类

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LegacyWebForm.aspx.cs" Inherits="MyWebApp.api.services.LegacyWebForm" %>

隐藏代码的类名

namespace MyWebApp.api.services
{
    public partial class LegacyWebForm : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
...

1 个答案:

答案 0 :(得分:1)

您似乎丢失了一个designer文件。

.aspx.designer.cs

This突出显示了设计师的用法。

您可以regenerate设计器文件。

如果在尝试编译时desiger文件仍然抛出缺少的引用,则可能需要清理项目并重新生成它。