diff --git a/src/Umbraco.Web/Mvc/RedirectToUmbracoPageResult.cs b/src/Umbraco.Web/Mvc/RedirectToUmbracoPageResult.cs
index 437eec4e5c..014fd7ecd3 100644
--- a/src/Umbraco.Web/Mvc/RedirectToUmbracoPageResult.cs
+++ b/src/Umbraco.Web/Mvc/RedirectToUmbracoPageResult.cs
@@ -17,6 +17,7 @@ namespace Umbraco.Web.Mvc
{
private IPublishedContent _publishedContent;
private readonly int _pageId;
+ private readonly Guid _key;
private NameValueCollection _queryStringValues;
private readonly IUmbracoContextAccessor _umbracoContextAccessor;
private string _url;
@@ -49,14 +50,25 @@ namespace Umbraco.Web.Mvc
get { return _pageId; }
}
+ public Guid Key
+ {
+ get { return _key; }
+ }
public IPublishedContent PublishedContent
{
get
{
if (_publishedContent != null) return _publishedContent;
- //need to get the URL for the page
- _publishedContent = Current.UmbracoContext.Content.GetById(_pageId);
+ if (_pageId != default(int))
+ {
+ _publishedContent = Current.UmbracoContext.Content.GetById(_pageId);
+ }
+
+ else if (_key != default(Guid))
+ {
+ _publishedContent = Current.UmbracoContext.Content.GetById(_key);
+ }
return _publishedContent;
}
@@ -91,6 +103,35 @@ namespace Umbraco.Web.Mvc
{
}
+ ///
+ /// Creates a new RedirectToUmbracoResult
+ ///
+ ///
+ public RedirectToUmbracoPageResult(Guid key)
+ : this(key, Current.UmbracoContextAccessor)
+ {
+ }
+
+ ///
+ /// Creates a new RedirectToUmbracoResult
+ ///
+ ///
+ ///
+ public RedirectToUmbracoPageResult(Guid key, NameValueCollection queryStringValues)
+ : this(key, queryStringValues, Current.UmbracoContextAccessor)
+ {
+ }
+
+ ///
+ /// Creates a new RedirectToUmbracoResult
+ ///
+ ///
+ ///
+ public RedirectToUmbracoPageResult(Guid key, string queryString)
+ : this(key, queryString, Current.UmbracoContextAccessor)
+ {
+ }
+
///
/// Creates a new RedirectToUmbracoResult
///
@@ -157,6 +198,43 @@ namespace Umbraco.Web.Mvc
_umbracoContextAccessor = umbracoContextAccessor;
}
+ ///
+ /// Creates a new RedirectToUmbracoResult
+ ///
+ ///
+ ///
+ public RedirectToUmbracoPageResult(Guid key, IUmbracoContextAccessor umbracoContextAccessor)
+ {
+ _key = key;
+ _umbracoContextAccessor = umbracoContextAccessor;
+ }
+
+ ///
+ /// Creates a new RedirectToUmbracoResult
+ ///
+ ///
+ ///
+ ///
+ public RedirectToUmbracoPageResult(Guid key, NameValueCollection queryStringValues, IUmbracoContextAccessor umbracoContextAccessor)
+ {
+ _key = key;
+ _queryStringValues = queryStringValues;
+ _umbracoContextAccessor = umbracoContextAccessor;
+ }
+
+ ///
+ /// Creates a new RedirectToUmbracoResult
+ ///
+ ///
+ ///
+ ///
+ public RedirectToUmbracoPageResult(Guid key, string queryString, IUmbracoContextAccessor umbracoContextAccessor)
+ {
+ _key = key;
+ _queryStringValues = ParseQueryString(queryString);
+ _umbracoContextAccessor = umbracoContextAccessor;
+ }
+
///
/// Creates a new RedirectToUmbracoResult
///
diff --git a/src/Umbraco.Web/Mvc/SurfaceController.cs b/src/Umbraco.Web/Mvc/SurfaceController.cs
index 4fc53de4ae..1e2536ddb5 100644
--- a/src/Umbraco.Web/Mvc/SurfaceController.cs
+++ b/src/Umbraco.Web/Mvc/SurfaceController.cs
@@ -56,6 +56,38 @@ namespace Umbraco.Web.Mvc
return new RedirectToUmbracoPageResult(pageId, queryString, Current.UmbracoContextAccessor);
}
+ ///
+ /// Redirects to the Umbraco page with the given id
+ ///
+ ///
+ ///
+ protected RedirectToUmbracoPageResult RedirectToUmbracoPage(Guid key)
+ {
+ return new RedirectToUmbracoPageResult(key, Current.UmbracoContextAccessor);
+ }
+
+ ///
+ /// Redirects to the Umbraco page with the given id and passes provided querystring
+ ///
+ ///
+ ///
+ ///
+ protected RedirectToUmbracoPageResult RedirectToUmbracoPage(Guid key, NameValueCollection queryStringValues)
+ {
+ return new RedirectToUmbracoPageResult(key, queryStringValues, Current.UmbracoContextAccessor);
+ }
+
+ ///
+ /// Redirects to the Umbraco page with the given id and passes provided querystring
+ ///
+ ///
+ ///
+ ///
+ protected RedirectToUmbracoPageResult RedirectToUmbracoPage(Guid key, string queryString)
+ {
+ return new RedirectToUmbracoPageResult(key, queryString, Current.UmbracoContextAccessor);
+ }
+
///
/// Redirects to the Umbraco page with the given id
///