我是视觉工作室和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" />
以下代码提供以下警告: file&#39;〜/ controls / labelcontrol.ascx&#34;找不到
<%@ 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 文件(据我所知):元素&#39;标签&#39;不是一个已知的元素。如果网站中存在编译错误,或者缺少web.config文件,则会发生这种情况。
我在这个网站上发现了两个类似的问题。 The first one并非常有帮助,因为答案是忽略警告。我不想这样做。 由于他/她有拼写错误,The second question并没有帮助。
我怎样摆脱这个警告?
注释: 我使用的是visual studio 2017和dotnetnuke 8
答案 0 :(得分:2)
自从我完成DNN开发以来已经有一段时间了,但问题通常是当你制作一个自定义模块时,你可以使用DNN其余部分所在的上下文,但在开发期间,剩下的DNN实际上并不存在(或者至少不是Visual Studio期望找到它的地方)。
我想你可以通过将DNN标签控件复制到模块的controls文件夹中来消除警告。如果你这样做,我会确保你的构建不包含DNN控件,并将它放在源代码控制使用的任何忽略列表中。