从另一个项目添加用户控件SharePoint 2013 null

时间:2019-06-13 13:28:19

标签: c# asp.net sharepoint

我创建了用户控件,并在同一项目的页面中对其进行了测试,一切正常。然后,我创建了一个Nuget包并将其添加到目标项目。一切似乎都正常-类型已定义,我可以创建控件。但是,我的控件的子控件未初始化-它们都是null。我该如何修理?我尝试了不同的汇编寄存器: <%@ Register TagPrefix="cc" Namespace="SomeNamespace" Assembly="MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxx"%> 正如我所描述的那样,这一作品。

<%@ Register TagPrefix="cc" TagName="CustomControl" Src="../../../_controltemplates/15/Project/CustomControl.ascx" %>返回解析错误(未在后面找到代码-编译为dll)。

我尝试显式添加ind .cs文件并删除.ascx。我想到的唯一解决方案是在构造函数中手动初始化“自定义控件”的所有子控件。但这是不得已的方法。我想为此使用内置机制。

1 个答案:

答案 0 :(得分:0)

我找到了某种解决方案。我刚刚添加了两个Register子句

<%@ Register TagPrefix="cc" Namespace="SomeNamespace" Assembly="MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=xxx"%>
<%@ Register TagPrefix="cc" TagName="CustomControl" Src="../../../_controltemplates/15/Project/CustomControl.ascx" %>

并添加到.nuspec中:

<files>
    <file src="ControlTemplates\" target="content\ControlTemplates" />
    <file src="Layouts\" target="content\Layouts" />
</files>

CustomControl.ascx.cs属性Copy to Outputdirectory设置为Copy always之后。

这不是我一直在寻找的解决方案-出现有关控件的多个定义的警告,每次更新程序包后我都必须编辑.csproj来为文件添加<DependentUpon>。而且我必须记住在首先下载软件包之前添加一些UserControl和Image映射的文件夹,否则Visual Studio看不到该控件。尽管如此,它仍然有效。

相关问题