0

我是 sharepoint2010 的新手,我习惯于 ASP Web 开发。我正在做的是从外部项目中引用 .ascx,如 Scott Guthrie 文章中所述: http ://webproject.scottgu.com/CSharp/UserControls/UserControls.aspx

以及 SharePoint 中的 MVP 文章: http ://www.henrycordes.nl/post/2009/04/29/Model-View-Presenter-design-pattern-in-Sharepoint.aspx

我有一个测试 Web 应用程序,它具有对 webControls (Ascx) 库项目的项目引用,并且有一个预构建行将 ascx 复制到 Web 应用程序项目中的文件夹中。然后我照常从aspx页面引用ascx控件!

但是在 SharePoint 中,我尝试了同样的技巧并得到了这个错误:

" 解析器错误说明:解析服务此请求所需的资源时发生错误。请查看以下特定解析错误详细信息并适当修改您的源文件。

解析器错误消息:此页面上不允许引用的文件“/UserControls/Calculator.ascx”。”

事实上, ascx 的路径根本没有被解析,因为如果我切换到一个不存在的目录,我会得到同样的错误。或者,如果我将 ascx 复制到“14”目录。

我需要采取哪些步骤才能在 SP2010 中部署此 ascx?

这是我用来在 sp visual webpart 代码 aspx 页面中引用 ascx 的行:

<%@ Register tagPrefix="sjb" tagName="calc" src="~/UserControls/Calculator.ascx" %>
<sjb:calc ID="calc" runat="server" />
4

1 回答 1

0

您需要将控件部署到 _layouts/controltemplates 目录。这将使他们安全地部署到农场。

您最好的做法是在您的项目中添加一个可视化 webpart 作为示例,并用您的示例替换 ascx 文件。

然后像这样在您的母版页/页面中

<%@ Register TagPrefix="mfKA" TagName="KeepAliveControl" Src="~/_controltemplates/LoginKeepAlive/KeepAlive/KeepAliveUserControl.ascx"%>
于 2013-01-15T19:30:19.677 回答