【发布时间】:2018-03-05 11:55:16
【问题描述】:
我对视觉工作室和 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 文件丢失(据我所知):元素“标签”不是已知元素。如果网站中存在编译错误,或者缺少 web.config 文件,就会发生这种情况。
我在这个网站上发现了两个类似的问题。 The first one 不是很有帮助,因为答案是忽略警告。我不想这样做。 The second question 也没有帮助,因为他/她有错字。
我怎样才能摆脱这个警告?
注意事项: 我正在使用 Visual Studio 2017 和 dotnetnuke 8
【问题讨论】:
-
不知道能不能去掉这个警告,不过可以忽略。
-
如果可以忽略,为什么会出现警告?
-
这是因为模板的设置方式。 VS 认为它们是自己的 IIS 应用程序,实际上它们将在 DNN 内部运行。由于我的项目模板的格式,VS 不知道 DNN 在哪里,所以它找不到这些文件的路径。一旦在 DNN 内部运行,文件确实存在,因此不会引发错误。
-
啊,谢谢。我仍然认为警告的存在有点奇怪,但现在我有点理解了。