2015-06-19 2 views
3

Как исключить маршрут из обработки с помощью sitecore или glassmapper?Исключить маршруты в Sitecore MVC

Попытка загрузить стандартный маршрут MVC (контроллер/действие). Я не хочу, чтобы sitecore справлялся с этим. Я вижу эту ошибку:

Attempt to retrieve context object of type 'Sitecore.Mvc.Presentation.RenderingContext' from empty stack. 

Использование Sitecore 8.

+0

Можете ли вы разместить код маршрута, который вы используете для регистрации маршрута? И вы вводите его через трубопроводы? –

ответ

2

Установка IgnoreUrlPrefixes должна справиться с этим.

Просто добавьте префикс маршрута, и Sitecore должен его игнорировать.

<setting name="IgnoreUrlPrefixes" value="....|/yourcontroller"/> 

Подробнее здесь

http://www.sitecore.net/learn/blogs/technical-blogs/john-west-sitecore-blog/posts/2012/06/four-ways-to-process-mvc-requests-with-the-sitecore-aspnet-cms.aspx

+0

Я думаю, что у меня это на месте. Но до сих пор не повезло. Хотя тип действия JsonResult работает нормально. Только когда я пытаюсь вернуть View(), я вижу проблему. – xoail

1

маршрут MVC Вы можете использовать атрибуты для управления регулярными маршрутами. Для этого вам нужно будет вставить небольшой процессор в sitecore initialize конвейер.

public class RegisterMvcAttributeRoutesPipeline 
 
{ 
 
    public void Process(PipelineArgs args) 
 
    { 
 
     RouteTable.Routes.MapMvcAttributeRoutes(); 
 
    } 
 
}

И тогда вам нужно впрыснуть процессор:

<sitecore> 
 
    <pipelines> 
 
     <initialize> 
 
     <processor type="{Your processor type here}" patch:before="processor[@type='Sitecore.Mvc.Pipelines.Loader.InitializeControllerFactory, Sitecore.Mvc']" /> 
 
     </initialize> 
 
    </pipelines> 
 
</sitecore>

И теперь вы готовы маршрут использовать атрибуты:

[RoutePrefix("category")] 
 
    public class CategoryController : Controller 
 
    { 
 
     [HttpGet] 
 
     [Route("get/{id}")] 
 
     public ActionResult Get(string id) 
 
     { 
 
      return Content("MVC url with route attributes"); 
 
     } 
 
    }

Cheers, Алекс.

Смежные вопросы