将常规C#代码添加到SharePoint 2010网站页面

时间:2011-08-18 19:09:22

标签: c# asp.net sharepoint reference

我想将C#类添加到现有的SharePoint 2010网站页面。通过SharePoint UI或SharePoint Designer创建的网站页面上有一个我要访问和编辑其属性的Web部件。我可以在Visual Studio中创建一个不可见的Web部件,将其部署在页面上,并运行我想以这种方式运行的代码,但我觉得这可能是不好的做法(或者是它)?

我在谈论一般的非SharePoint .aspx页面如何引用C#文件,如下所示:

<%@ Page language="C#" Inherits="System.Web.UI.Page" CodeFile="Example.cs" %>

如上所述的行会被添加到.aspx文件中吗? .cs文件如何实际部署在SharePoint站点上?最后,这甚至可能吗?

我是SharePoint和本网站的新手,所以我感谢所有帮助!

3 个答案:

答案 0 :(得分:3)

默认情况下,出于安全原因,SharePoint不支持常规页面中的文件后面的代码(但是,正如alfonso所提到的,应用程序页面支持内联代码和代码隐藏文件)。您可以在web.config中覆盖此设置,但这不是一个好习惯。

您当然可以创建另一个Web部件来执行您想要的操作。我做过类似的事情。但通常,当我想更改自定义页面的行为时,我更改了Page指令的Inherits属性:

<%@ Page 
    language="C#" 
    DynamicMasterPageFile="~masterurl/default.master"
    Inherits="MyNamespace.MyClass, MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
    %>

创建您的类,让它继承自System.Web.UI.Page,然后将其部署到GAC。这不仅受到支持,而且大多数现成的SharePoint页面也是这样做的。

答案 1 :(得分:0)

我认为使用网站页面没有“正确”的方法。唯一的方法是使用你所说的webparts或用户控件。但是,您可以非常轻松地将代码添加到应用程序页面This guy explains this very well

答案 2 :(得分:0)

您应该查看MSDN上的SharePoint开发人员模块

http://www.mssharepointdeveloper.com

如前所述,有多种方法可以自定义SharePoint 2010,您可以使用

  • 的WebParts
  • ApplicationPages或LayoutsPages
  • 自定义MasterPages
  • DelegateControls

有多种方法可以扩展SharePoint,因此它实际上取决于您的情况或您要实现的要求。