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的方式。 –

相關問題