【问题标题】:PageViewer WebPart won't load URL with GET parameters页面查看器 Web 部件不会使用 GET 参数加载 URL
【发布时间】:2010-11-11 16:30:19
【问题描述】:

我需要在我的 SharePoint 门户中显示一个外部网站,因此我添加了一个 PageViewerWebPart。但 URL 包含登录参数,例如 www.mywebsite.com?login=X&passwd=Y

我尝试像这样在 ContentLink PageViewer 属性中添加 ASP 代码:

<WebPartPages:PageViewerWebPart runat="server" ContentLink="<% ="URL" %>" ... />

它返回给我这个错误:服务器标签不能包含 指令。

是否存在其他允许使用 GET 参数加载 URL 的属性? 我可以将此代码放入我的 WebPartPage 的 CodeBehind 中吗? 我真的做错了吗...?

任何帮助将不胜感激!

蒂莫西·马丁。

【问题讨论】:

  • 是抛出错误的共享点,还是 AsP?
  • Sharepoint 捕捉到这个错误并以常见的 sharepoint 样式显示它...
  • 您是在动态创建 URL 吗?如果是,您将创建 URL 的代码放在哪里?
  • 是的,目的是使用用户会话信息动态创建 URL。我想在 . 中创建 URL

标签: asp.net sharepoint web-parts


【解决方案1】:

虽然我认为将用户的凭据放在 URL 中是个坏主意(任何人都可以通过查看页面的 HTML 源代码看到这一点),但您可以通过以下方式完成您想做的事情:

使用继承自Microsoft.SharePoint.WebPartPages.WebPartPage 的类创建一个新的类库项目。比如:

namespace MyNameSpace.WebPagePages
{
    public class MyWebPartPage : Microsoft.SharePoint.WebPartPages.WebPartPage
    {
        protected Microsoft.SharePoint.WebPartPages.PageViewerWebPart myPageViewerWebPart;

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            // logic to create your URL
            string url = "http://blah/blah";

            // set the URL
            myPageViewerWebPart.ContentLink = url;
        }
    }
}

您需要签署程序集并将其部署到 GAC。建议使用 SharePoint 解决方案 (WSP) 来执行此操作(但不是此答案的重点)。

您现在需要修改包含 Web 部件的 ASPX 页面,如下所示:

  1. &lt;%@ Page %&gt; 指令的Inherits 属性更改为上述类的完全限定类型名称。它看起来像:MyNameSpace.WebPagePages.MyWebPartPage, MyNameSpace.WebPagePages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b538f318242c0b01
  2. 为 Web 部件提供一个 ID 属性,其值与代码隐藏类中 Web 部件的名称相匹配。在此示例中:&lt;WebPartPages:PageViewerWebPart runat="server" ID="myPageViewerWebPart"&gt;

应该这样做。如果您以前没有这样做过,那么创建类并将其部署到 GAC 将是棘手的部分,但是当您知道如何操作时它们就很容易了。 VSeWSSSTSDEVWSPBuilder 等工具(先学习一个,然后尝试其他)将帮助您通过创建 WSP 文件(SharePoint 解决方案)来完成此任务 - 我强烈建议您利用这一点。

【讨论】:

  • 非常感谢!我现在就试试! =)
【解决方案2】:

如果布局页面中存在上述代码,那么是的,布局页面中不允许使用 。我建议您在服务器端代码中设置链接。但是,如果您仍想使用 ,请参阅link,了解如何使其工作。

【讨论】:

  • 感谢您的回答。我已经尝试将链接中描述的代码放入,但它不起作用。它允许您将 放在任何地方,但不能放在 WebPart 标记中。问题是我找不到服务器端代码文件。我的 WebPartPage 存储在我的 TeamSite 的库中,并且我的第一个标记不引用 CodeBehind 文件。关于蒂莫西·马丁。
猜你喜欢
  • 2010-11-18
  • 2010-11-08
  • 2023-04-06
  • 2018-12-01
  • 2014-11-09
  • 1970-01-01
  • 2020-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多