diff --git a/src/Umbraco.Web/Models/PartialViewMacroModelExtensions.cs b/src/Umbraco.Web/Models/PartialViewMacroModelExtensions.cs
new file mode 100644
index 0000000000..8b4c8ed224
--- /dev/null
+++ b/src/Umbraco.Web/Models/PartialViewMacroModelExtensions.cs
@@ -0,0 +1,38 @@
+using Umbraco.Core;
+
+namespace Umbraco.Web.Models
+{
+ ///
+ /// Extension methods for the PartialViewMacroModel object
+ ///
+ public static class PartialViewMacroModelExtensions
+ {
+ ///
+ /// Attempt to get a Marco parameter from a PartialViewMacroModel and return a default value otherwise
+ ///
+ ///
+ ///
+ ///
+ /// Parameter value if available, the default value that was passed otherwise.
+ public static T GetParameterValue(this PartialViewMacroModel partialViewMacroModel, string parameterAlias, T defaultValue)
+ {
+ if (partialViewMacroModel.MacroParameters.ContainsKey(parameterAlias) == false || string.IsNullOrEmpty(partialViewMacroModel.MacroParameters[parameterAlias].ToString()))
+ return defaultValue;
+
+ var attempt = partialViewMacroModel.MacroParameters[parameterAlias].TryConvertTo(typeof(T));
+
+ return attempt.Success ? (T) attempt.Result : defaultValue;
+ }
+
+ ///
+ /// Attempt to get a Marco parameter from a PartialViewMacroModel
+ ///
+ ///
+ ///
+ /// Parameter value if available, the default value for the type otherwise.
+ public static T GetParameterValue(this PartialViewMacroModel partialViewMacroModel, string parameterAlias)
+ {
+ return partialViewMacroModel.GetParameterValue(parameterAlias, default(T));
+ }
+ }
+}