首页 > 解决方案 > 运行 asp.net Web 表单项目时找不到类型或命名空间名称

问题描述

我创建了一个 aspx 文件并想使用其他项目中的一个类。
我尝试<%@ Import Namespace="DTO" %>在 aspx 文件中使用,它显示 0 错误,但是当我运行项目时,aspx 文件显示错误:CS0246:找不到类型或命名空间名称“DTO”。
我还尝试在 Web.config 文件中使用以下代码:

<pages>
          <namespaces>
            <add namespace="DTO"/>
          </namespaces>
</pages>

它也显示 0 错误,但是当我运行项目时,aspx 文件显示相同的错误。
我添加了对其他项目的引用,这两个项目都使用 .Net Framework 4.5.2。
Visual Studio 总是显示 0 错误,但 aspx 文件总是显示“CS0246:找不到类型或命名空间名称‘DTO’。” 当我跑的时候。

编辑 这是我在 aspx 文件中使用的代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/Default.Master" AutoEventWireup="true" CodeBehind="cart.aspx.cs" Inherits="Demo_MasterPage.cart" %>
<%@ Import Namespace="DTO" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <%
        List<OrderItem> cart = Session["cart"] as List<OrderItem>;
    %>
</asp:Content>

这是 OrderItem 类的代码

namespace DTO
{
    public class OrderItem
    {
        public int OrderId { get; set; }
        public string ProductId { get; set; }
        public int Quantity { get; set; }
        public OrderItem()
        {

        }
        public OrderItem(int orderId, string productId, int quantity)
        {
            OrderId = orderId;
            ProductId = productId;
            Quantity = quantity;
        }
    }
}

标签: c#asp.netwebforms

解决方案


您需要使用要导入的程序集的完全限定名称空间。这意味着您应该添加您也引用过的项目名称:

<%@ Import Namepace="myProject.DTO"%>

请参阅如何将自定义命名空间从 dll 文件导入 .aspx 页面

此外,当您设置引用时,请确保将复制本地属性设置为 true。


推荐阅读