2011-08-18 86 views
4

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

我有种谈到如何一般非SharePoint .aspx页面中可以引用一个C#文件,有点像下面:

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

会像上面一行添加到.aspx文件? .cs文件如何实际部署在SharePoint网站上?最后,这甚至可能吗?

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

回答

3

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

你当然可以创建另一个Web部件来做你想做的事情。我之前做过类似的事情。但通常情况下,当我想换一个自定义页面的行为,我改变了Page指令的继承属性:

<%@ 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页面所做的。

+0

谢谢你的解释。这对我来说现在更有意义。当我将这个类部署到GAC时,是否通过Visual Studio完成了这个工作? –

+0

是的。使用Visual Studio 2010创建SharePoint 2010项目时,缺省情况下,将通过生成的解决方案包将该DLL部署到GAC。在aspx页面中,您可以简单地输入:Inherits =“MyNamespace.MyClass,$ SharePoint.Project.AssemblyFullName $”。构建解决方案包时,Visual Studio会将该DLL的四部分名称插入到页面中。 –

0

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

+0

谢谢你的链接,这是非常有帮助的。 –

0

你应该看看开发模块的SharePoint MSDN上

http://www.mssharepointdeveloper.com

有多种方法如何自定义SharePoint 2010中已经提到早前在这里你可以使用

  • 的WebParts
  • 应用页面或布局页面
  • 定制主页
  • DelegateControls

有更多的方式如何扩展SharePoint,所以这真的取决于你的情况或你已经达到要求。

+0

好的,感谢您打破自定义SharePoint的方式。 –

相关问题