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
- mike@mountaingoatsoftware.com

Doors are now open (for a limited time only) to my new course: Estimating with Story Points.

- mike@mountaingoatsoftware.com

In this final video on creating estimates with story points, I help you overcome one of the biggest

- mike@mountaingoatsoftware.com

This video helps you align stakeholder and team expectations when creating estimates (and those esti

- mike@mountaingoatsoftware.com

Just released: Free videos to help teams solve problems when creating estimates with story points.

- mike@mountaingoatsoftware.com

- Scott Hanselman

Back in 2017 I said "URLs are UI" and I stand by it. At the time, however, I was running t

- Scott Hanselman

I recently moved my home NAS over from a Synology DS1511 that I got in May of 2011 to a DS1520 that

- Scott Hanselman

An important step in moving my blog to Azure was to consider getting this .NET app, now a .NET Core

- Scott Hanselman

I have been running this https://hanselman.com/blog for almost 20 years. Like coming up on 19 I beli

- Scott Hanselman

Hayden Barnes from Canonical, the folks that work on Ubuntu (lovely blog, check out it) had a great

Meta