2011-07-13 39 views
3

我刚刚开始使用Sharepoint Foundation 2010,我试图从c#编写一个函数来将页面添加到网站。如何使用Sharepoint 2010的API创建页面?

我得到了一些代码来创建一个新的网站,但我似乎无法找到任何有关使用客户端对象模型向现有网站添加页面的任何文档。

这可能是一个简单的问题,但如果任何人都可以帮助我,我会很感激。

谢谢。

更新

这是我到目前为止有:

private void createPage() 
    { 
     ClientContext context = new ClientContext(url); 
     Site siteCollection = context.Site; 
     Web site = context.Web; 

     List pages = site.Lists.GetByTitle("Pages"); 
     FileCreationInformation fileCreateInfo = new FileCreationInformation(); 
     fileCreateInfo.Url = "NewPage"; 
     fileCreateInfo.Content = System.Text.Encoding.ASCII.GetBytes("Test"); 
     context.Load(pages.RootFolder.Files.Add(fileCreateInfo)); 

     context.ExecuteQuery(); 
     context.Dispose(); 
    } 

,但我得到了一个服务器例外“列表‘页面’没有在现场与URL存在”

+0

你想添加什么样的页面,它是一个网站页面? “将页面添加到现有页面”对我来说听起来很奇怪。 –

+0

抱歉打字错误,我的意思是添加一个页面到现有的网站。 – Matt

回答

2

这是我最终做的添加我的页面。基本上我只需要找到适当的列表标题。这些只是网站上文档库的名称。

private void createPage() 
    { 
     ClientContext context = new ClientContext(URL); 
     Site siteCollection = context.Site; 
     Web site = context.Web; 

     List pages = site.Lists.GetByTitle("Site Pages"); 

     Microsoft.SharePoint.Client. 
     FileCreationInformation fileCreateInfo = new FileCreationInformation(); 
     fileCreateInfo.Url = "NewPage.aspx"; 
     context.Load(pages.RootFolder.Files.Add(fileCreateInfo)); 

     context.ExecuteQuery(); 
     context.Dispose(); 
    } 
+0

我知道这是旧的,但是当我尝试这段代码时,我得到一个错误:''parameters.Content'参数不能为空。 参数名称:parameters.Content' – jasonscript

0

如果你正在谈论创建一个新的网站页面,我会建议看看本教程:

http://blogs.msdn.com/b/kaevans/archive/2010/06/28/creating-a-sharepoint-site-page-with-code-behind-using-visual-studio-2010.aspx

花一点时间,并确保您确实想要通过代码添加此代码。作为最近开始使用SharePoint进行开发的人员,我可以告诉您,在使用对象模型时,学习曲线会非常陡峭。另外,使用代码很容易通过UI执行的任务可能非常困难。

祝你好运!

0

此代码适用于我。它通过内容测试创建一个页面(“NewPage.aspx”)。

private void createPage() 
    { 
     ClientContext context = new ClientContext(URL); 
     Site siteCollection = context.Site; 
     Web site = context.Web; 

     List pages = site.Lists.GetByTitle("Site Pages"); 

     Microsoft.SharePoint.Client. 
     FileCreationInformation fileCreateInfo = new FileCreationInformation(); 
     fileCreateInfo.Url = "NewPage.aspx"; 
     fileCreateInfo.Content = System.Text.Encoding.ASCII.GetBytes("Test"); 
     context.Load(pages.RootFolder.Files.Add(fileCreateInfo)); 

     context.ExecuteQuery(); 
     context.Dispose(); 
    } 
相关问题