【问题标题】:Conditional Display in ASPX Pages on SharepointSharepoint 上 ASPX 页面中的条件显示
【发布时间】:2008-09-03 12:43:50
【问题描述】:

我想知道这个场景的最佳实践是什么:

我有一个带有 ASPX 页面的 Sharepoint 站点 (MOSS2007)。但是,我不能使用任何内联源,并且事件处理程序之类的东西不起作用,因为默认情况下,Sharepoint 不允许在 ASPX 页面上使用服务器端脚本。

两种解决方案:

  1. 按照this site修改web.config中的PageParserPath

    <PageParserPaths>
    <PageParserPath VirtualPath="/pages/test.aspx" 
            CompilationMode="Always" AllowServerSideScript="true" />
    </PageParserPaths>
    
  2. 创建所有控件并将它们连接到 .CS 文件中的事件,从而完全消除 ASP.net 的一些好处

我想知道,最佳做法是什么?第一个看起来是正确的选择,但更改 web.config 是我希望尽可能少用的东西。

【问题讨论】:

    标签: asp.net sharepoint


    【解决方案1】:

    因此,在这种情况下,我会将其封装在一个功能中并通过解决方案进行部署。这样我认为你会避免你所看到的问题。如果您也计划在其他站点中使用此功能,这将特别有用。

    您还可以将 Web 部件直接嵌入页面中,就像您执行 WebControl 一样,从而避免任何画廊混乱。

    【讨论】:

      【解决方案2】:

      ASPX 页面有什么作用?它增加了什么功能?您如何将页面添加到网站中?从外观上看,这只是文档库中的“Web 部件页”。

      我必须做一些研究才能做到 100%,但我的理解是内联代码是可以的,只要它位于一个仍然是幻影的页面中,因此是受信任的。您可以通过功能将您的功能添加到网站中吗?

      我会避免选项 1,这对我来说似乎是个坏建议。在您的页面中允许服务器端代码存在安全风险,因为这样就可能有人注入恶意代码。当然,您可以保护页面,但我们正在谈论可能具有一些非常严格的权限的远程执行。

      【讨论】:

        【解决方案3】:

        到目前为止,谢谢。我已经成功尝试了 Andrew Connel 的解决方案:

        http://www.andrewconnell.com/blog/articles/UsingCodeBehindFilesInSharePointSites.aspx

        将其包装成解决方案是其中的一部分,但主要问题是如何将代码放入其中,并且更倾向于选项 2,而无需在代码中创建控件。

        我错过了什么:
        在.cs文件中,需要手动添加“protected Button Trigger”;东西,因为使用类库时没有自动生成的.designer.cs文件。

        【讨论】:

          【解决方案4】:

          嗯,这是一个承载用户控件的页面。这是一个将在网站上创建的自定义 .aspx 页面,特别是因为我不想创建 WebPart。

          它本质上是一个在 Sharepoint 中运行的应用程序,利用列表和其他功能,但所有功能仅在应用程序中有用,因此我希望在 Web 部件库中充斥着无数只在一个地方工作的 Web 部件避免。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-09-30
            • 2014-03-07
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多