【问题标题】:file '~/controls/labelcontrol.ascx" was not found找不到文件“~/controls/labelcontrol.ascx”
【发布时间】: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 内部运行,文件确实存在,因此不会引发错误。
  • 啊,谢谢。我仍然认为警告的存在有点奇怪,但现在我有点理解了。

标签: visual-studio dotnetnuke


【解决方案1】:

我已经有一段时间没有进行 DNN 开发了,但问题通常是,当您制作自定义模块时,您会根据 DNN 的其余部分存在的上下文来制作它,但在开发时,其余部分DNN 实际上并不存在(或者至少不是 Visual Studio 期望找到的地方)。

我想您可以通过将 DNN 标签控件复制到模块的控件文件夹中来消除警告。如果你这样做,我会确保你的构建不包含 DNN 控件,并且你将它放在你的源代码控制使用的任何忽略列表中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    相关资源
    最近更新 更多