From 10a0257f19b7b7e957da1ff78115e0141f8c11fd Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Mon, 3 Feb 2014 15:36:26 -0800 Subject: [PATCH] Making Href() tenant aware --- .../Themes/TheAdmin/Views/Header.cshtml | 8 +++----- .../Themes/TheThemeMachine/Views/Branding.cshtml | 5 +---- src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/Orchard.Web/Themes/TheAdmin/Views/Header.cshtml b/src/Orchard.Web/Themes/TheAdmin/Views/Header.cshtml index dae6aa7f9..3393cd3f3 100644 --- a/src/Orchard.Web/Themes/TheAdmin/Views/Header.cshtml +++ b/src/Orchard.Web/Themes/TheAdmin/Views/Header.cshtml @@ -1,13 +1,11 @@ -@using Orchard.Environment.Configuration -@model dynamic +@model dynamic @{ - var urlPrefix = WorkContext.Resolve().RequestUrlPrefix; var siteName = WorkContext.CurrentSite.SiteName; var siteLinkText = !string.IsNullOrWhiteSpace(siteName) ? siteName : T("Your site").Text; var appLinkText = !string.IsNullOrWhiteSpace(siteName) ? siteName : T("Project Orchard").Text; }
-
@Html.Link(appLinkText, Url.Content("~/" + urlPrefix))
-
@Html.Link(siteLinkText, Url.Content("~/" + urlPrefix))
+
@Html.Link(appLinkText, Href("~/"))
+
@Html.Link(siteLinkText, Href("~/"))
\ No newline at end of file diff --git a/src/Orchard.Web/Themes/TheThemeMachine/Views/Branding.cshtml b/src/Orchard.Web/Themes/TheThemeMachine/Views/Branding.cshtml index 3fdb84187..8debf7ea1 100644 --- a/src/Orchard.Web/Themes/TheThemeMachine/Views/Branding.cshtml +++ b/src/Orchard.Web/Themes/TheThemeMachine/Views/Branding.cshtml @@ -1,4 +1 @@ -@{ - var homeUrl = Href("~/"); -} -

@WorkContext.CurrentSite.SiteName

\ No newline at end of file +

@WorkContext.CurrentSite.SiteName

diff --git a/src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs b/src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs index eecf3fcf1..0721226e8 100644 --- a/src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs +++ b/src/Orchard/Mvc/ViewEngines/Razor/WebViewPage.cs @@ -6,6 +6,7 @@ using System.Web.WebPages; using Orchard.ContentManagement; using Orchard.DisplayManagement; using Orchard.DisplayManagement.Shapes; +using Orchard.Environment.Configuration; using Orchard.Localization; using Orchard.Mvc.Html; using Orchard.Mvc.Spooling; @@ -189,6 +190,19 @@ namespace Orchard.Mvc.ViewEngines.Razor { return writer; } + private string _tenantPrefix = null; + public override string Href(string path, params object[] pathParts) { + if (_tenantPrefix == null) { + _tenantPrefix = WorkContext.Resolve().RequestUrlPrefix ?? ""; + } + + if (!String.IsNullOrEmpty(_tenantPrefix)) { + return base.Href(path, new [] {_tenantPrefix }.Concat(pathParts).ToArray()); + } + + return base.Href(path, pathParts); + } + public IDisposable Capture(Action callback) { return new CaptureScope(this, callback); }