我对 Visual Studio 和 DNN 非常陌生,我正在通过一本书学习“基础知识”。我现在正在尝试构建我的第一个模块。在其中一个 ascx 文件中,我有以下代码:
<%@ Control Language="C#" AutoEventWireup ="true" CodeBehind="Settings.ascx.cs" Inherits="wrox.Modules.guestbook.Settings" %>
<%@ Register TagName="label" TagPrefix="dnn" Src="~/controls/labelcontrol.ascx" %>
<fieldset>
<div class="dnnFormItem">
<dnn:Label ID="lblAutoApprove" runat="server" ResourceKey="lblAutoApprove"
ControlName="chkAutoApprove" />
</div>
</fieldset>
<asp:CheckBox runat="server" ID="chkAutoApprove" />
以下代码给出以下警告:找不到文件“~/controls/labelcontrol.ascx”
<%@ Register TagName="label" TagPrefix="dnn" Src="~/controls/labelcontrol.ascx" %>
我需要为这段代码使用labecontrol.ascx文件。
<div class="dnnFormItem">
<dnn:Label ID="lblAutoApprove" runat="server"
ResourceKey="lblAutoApprove"
ControlName="chkAutoApprove" />
</div>
这段代码给出以下警告,因为labecontrol.ascx文件丢失(据我所知):元素“Label”不是已知元素。如果网站中存在编译错误,或者 web.config 文件丢失,则可能会发生这种情况。
我在此网站上发现了两个类似的问题。 The first one不是很有帮助,因为答案是忽略警告。我不想这样做。 The second question也没有帮助,因为他/她有一个拼写错误。
如何摆脱这个警告?
注释: 我正在使用 Visual Studio 2017 和 dotnetnuke 8
最佳答案
自从我完成 DNN 开发以来已经有一段时间了,但问题通常是,当您制作自定义模块时,您会在 DNN 的其余部分都存在的上下文中进行制作,但在开发期间,其余的部分DNN 实际上并不存在(或者至少不在 Visual Studio 期望找到它的地方)。
我想您可以通过将 DNN 标签控件复制到模块的控件文件夹中来消除警告。如果您这样做,我将确保您的构建不包含 DNN 控件,并且将其放入源代码管理使用的任何忽略列表中。
关于visual-studio - 找不到文件 '~/controls/labelcontrol.ascx",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49109976/