Creating a Custom Component in Umbraco 7

Home » ASP.NET MVC » Creating a Custom Component in Umbraco 7
Umbraco Logo

Umbraco is built on the idea of document types and templates. The document type defines the data that is to appear on a page, the template shows how that data will appear, so when you create content, it is based on a document type and a choice of templates that you are allowed to use for that document type. You don’t want to make the mistake of creating many different templates for different content. Templates are about layout, not content. This post describes how to create a custom component in Umbraco 7 and allow the users themselves to put it on a page of their own choosing.

Previous versions of Umbraco did something similar with Windows Forms user controls. Umbraco 7 is about MVC. We are going to use MVC partial views in particular to achieve this.

Firstly, you need a Visual Studio project with Umbraco installed. Refer to my blog post on Howto: Installing Umbraco in Visual Studio via Nuget if you don’t already have a Visual Studio project.

Step 1. Create a partial view macro.

Create a partial view macro by right clicking the Views/Partials/MacroPartials folder and clicking Add View.

Alternatively you can use Umbraco, but you will have to review the Visual Studio project afterwards and ensure the new view is included in the project and in your source control system correctly.

In the example below, I create a partial view from the Site Map snippet using Developer->Partial View Macro Files->Create:

Create example Partial View Macro using Umbraco

Create example Partial View Macro using Umbraco

Step 2. Make the Partial View Macro visible in the Umbraco content editor.

To do this, in Umbraco, click on Macros, find the macro just created and click on the name to the left of the Ellipsis (…). Your aim is to tick the Editor settings “Use in rich text editor and the grid” and optionally “Render in rich text editor and the grid” as shown below:

Setting the Editor Settings for the Partial View Macro

Setting the Editor Settings for the Partial View Macro

N.B. Don’t forget to press Save when you are done.

Step 3. Create a test page and use the insert macro feature to put the content on the page.

Adding the Macro using the Umbraco RichTextEditor

Adding the Macro using the Umbraco RichTextEditor

If you ticked both options when you set up the macro, the macro is displayed in the content editor as well as being available from the Choose a macro drop downlist:



Displaying the Macro in the Umbraco Content Editor

Displaying the Macro in the Umbraco Content Editor

Thats it!

N.B. There is no reason why you can’t put in a Html.Partial command and refer to other partial views and controllers etc. I tend to do this quite a bit in order to keep the code separate and to have a small partial view macro file that is just used to make other views available in the Umbraco rich text editor.

About Phil

I have been working as a software developer since 1983. This blog could have been called "From Fortran 77, C and Cobol to C# in 20 (not so) easy years", but it doesn't sound quite right somehow. Besides I'm talking about what's happened since 2003, not before!

Leave a Reply

Your email address will not be published.


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">




Top Posts & Pages

Categories

Recent Posts

Recent Comments

Archives

Blogroll

  • Mike Cohn's Blog
  • Scott Hanselman's Blog
- lance@mountaingoatsoftware.com

Scrum Master jobs are on the rise and so are their salaries. But is everything as it seems?

- lance@mountaingoatsoftware.com

In this post I share 5 highlights from my Facebook Live session with Brian Milner.

- lance@mountaingoatsoftware.com

Today, Certified Scrum Trainer Scott Dunn shares his insights about the pain felt when leadership do

- lance@mountaingoatsoftware.com

After making one decision, it can be helpful to make the next decision or two at the same time.

- Scott Hanselman

I love the Raspberry Pi and I am a fan of the CrowPi from Elecrow. I have two of their first CrowPi

- Scott Hanselman

This is an interesting blog post on How to SSH into WSL2 on Windows 10 from an external machine. Rea

- Scott Hanselman

Cool blog post eh? Good title, right? DO NOT DO THE INSTRUCTIONS IN THIS POST until you have read th

- Scott Hanselman

I got a great question emailed to me today. And while I could find the answer and email them back, I

- Scott Hanselman

I've blogged before about Developing on Docker with the new and improved Visual Studio Containe

Meta