【问题标题】:using external project asp.NET user control (ascx) in Visual WebPart在 Visual WebPart 中使用外部项目 asp.NET 用户控件 (ascx)
【发布时间】:2013-01-15 16:21:39
【问题描述】:

我是 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" />

【问题讨论】:

    标签: asp.net sharepoint sharepoint-2010 mvp ascx


    【解决方案1】:

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

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

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

    <%@ Register TagPrefix="mfKA" TagName="KeepAliveControl" Src="~/_controltemplates/LoginKeepAlive/KeepAlive/KeepAliveUserControl.ascx"%>
    

    【讨论】:

    • 如何将 webpart ascx 替换为我的?除了复制/粘贴?我在 SP 项目之外创建用户控件库的原因是为了可测试性,并且应该使用户控件的开发更加简单。
    • 您想在 Web 部件中使用它,还是只在母版页/页面布局上注册使用该控件?
    • 在 Visual Studio 中,单击项目中的添加,然后单击 SharePoint/Usercontrol。这将向 controltemplates 文件夹添加一个控件。将此控件命名为与您的控件相同的名称,然后将其替换为您的。这会将 属性放入包清单文件中。 这应该会为您进入 SharePoint。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 2011-06-03
    • 1970-01-01
    • 2013-11-01
    • 2011-12-17
    • 2013-05-19
    相关资源
    最近更新 更多