diff --git a/src/Orchard.Web/Modules/Orchard.Search/Filters/SearchFilter.cs b/src/Orchard.Web/Modules/Orchard.Search/Filters/SearchFilter.cs index 1808581d7..5dad632b5 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Filters/SearchFilter.cs +++ b/src/Orchard.Web/Modules/Orchard.Search/Filters/SearchFilter.cs @@ -1,15 +1,20 @@ using System.Web.Mvc; using Orchard.Mvc.Filters; -using Orchard.Mvc.ViewModels; -using Orchard.Search.ViewModels; namespace Orchard.Search.Filters { public class SearchFilter : FilterProvider, IResultFilter { - public void OnResultExecuting(ResultExecutingContext filterContext) { - var viewModel = filterContext.Controller.ViewData.Model as BaseViewModel; + private readonly IWorkContextAccessor _workContextAccessor; - if (viewModel != null) - viewModel.Zones.AddRenderPartial("search", "SearchForm", viewModel is SearchViewModel ? viewModel : new SearchViewModel()); + public SearchFilter(IWorkContextAccessor workContextAccessor) { + _workContextAccessor = workContextAccessor; + } + + public void OnResultExecuting(ResultExecutingContext filterContext) { + dynamic search = filterContext.Controller.ViewData.Model; + var workContext = _workContextAccessor.GetContext(filterContext); + + if (search != null) + workContext.Page.Search.Add(search); } public void OnResultExecuted(ResultExecutedContext filterContext) { diff --git a/src/Orchard.Web/Modules/Orchard.Search/Module.txt_ b/src/Orchard.Web/Modules/Orchard.Search/Module.txt similarity index 100% rename from src/Orchard.Web/Modules/Orchard.Search/Module.txt_ rename to src/Orchard.Web/Modules/Orchard.Search/Module.txt diff --git a/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj b/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj index 22128d21f..4ae7b77ef 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj +++ b/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj @@ -49,7 +49,7 @@ 3.5 - + 3.5 @@ -90,14 +90,16 @@ - - - + + + + +