c# - 运行 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;
}
}
}
解决方案
您需要使用要导入的程序集的完全限定名称空间。这意味着您应该添加您也引用过的项目名称:
<%@ Import Namepace="myProject.DTO"%>
请参阅如何将自定义命名空间从 dll 文件导入 .aspx 页面
此外,当您设置引用时,请确保将复制本地属性设置为 true。
推荐阅读
- javascript - JQuery 过滤 - 按钮和搜索
- css - 通过 squarespace 更改我的主页滑块的亮度
- ruby-on-rails - 新字段适用于 localhost 但不适用于 Heroku
- c++ - 递归函数中的 CPP 向量连接
- powershell - Powershell - 将一个 CSV 中的数据添加到另一个 CSV 文件的新列和行中
- java - 排除包含的 jar 库中的特定类和包以进行 jacoco 的协变量检查
- .net - 什么套接字方法将 Xamarion.IOS 应用程序与 Windows 上的远程 .NET-Standard 应用程序连接起来?
- c# - 为什么自动属性验证不适用于继承集合的模型?
- indexing - 为什么我们需要使用双引号来调用全局变量_G的索引?
- shopify - Shopify REST API:发送具有特定语言环境的发票