Creating A Sharepoint Subsite Using CSOM With C#

This tutorial will show you how to programmatically create a subsite in Sharepoint. This can be done a few different ways and if you have server access you may prefer to do this on the server side, but you can just as easily create one using the Client-Side Object Model.

You can do this using a standard C# console application. For this example I used Visual Studio 2013 with .NET 4.0. You will need to include 2 assemblies in order for the code to work.

using Microsoft.SharePoint.Client;
using Microsoft.SharePoint;

If this code throws an error then you will need to add the reference to your project. For me, I was not able to find Microsoft.Sharepoint but when I added the .client assembly it worked.

using (ClientContext ctx = new ClientContext("http://site.com"))
{
	WebCreationInformation wci = new WebCreationInformation();
	wci.Url = "mysite" // This url is relative to the url provided in the context
	wci.Title = "My Site";
	wci.Description = description;
	wci.UseSamePermissionsAsParentSite = true;
	wci.WebTemplate = "STS#0";
	wci.Language = 1033; 
	
	Web w = ctx.Site.RootWeb.Webs.Add(wci);
	ctx.ExecuteQuery();
}

Thats it! The code above is all you need to create a new subsite. If you make a mistake and want to change it, you can also do this quite easy using similar code. You can modify pretty much everything on a subsite, but the URL becomes read only so you cannot change this once it has been set.

using (var context = new ClientContext("http://site.com/subsite")
{
	//context.Credentials = credentials;
	var site = context.Web;
	context.Load(site);
	context.ExecuteQuery();
	site.Title = "New Title";
	site.Description = "New Description";
	site.Update();
	context.ExecuteQuery();
}

This is all you need to be able to add a subsite and to be able to edit it.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.