Аякс звонит с Sitecore

В настоящее время я прочитал этот ресурс http://www.bugdebugzone.com/2014/06/tutorial-how-to-make-ajax-call-in.html о том, как делать вызовы ajax с помощью Sitecore. Но я вижу, что это выходит из-под контроля, если добавить Routes в Routes.config. Какие есть альтернативы добавлению маршрутов в конфиг? Или, может быть, какой-то способ прочитать их из файла конфигурации? Есть ли какой-то "естественный" способ для Sitecore подобрать контроллер и действовать?

2 ответа

Sitecore способ регистрации маршрутов - сделать то же, что описано в статье, но вызывать его не из папки App_start. Он должен вызываться с одного из процессоров в конвейере инициализации.

В качестве примера вы можете открыть свой /sitecore/admin/showconfig.aspx, найти определение инициализации конвейера и посмотреть на Sitecore.Mvc.Pipelines.Loader.InitializeRoutes, Sitecore.Mvc, Sitecore.Cintel.Client.Initialization.InitializeRoutes, Sitecore.Cintel. Процессоры клиента или Sitecore.Cintel.Endpoint.Plumbing.InitializeRoutes, Sitecore.Cintel. На самом деле они делают то же, что описано в статье, которую вы предоставили, разница только в том месте, где это называется.

PS Для меня вызов из инициализации конвейера имеет одно преимущество: вы можете контролировать порядок сбора маршрутов.

Вы можете использовать ASP.NET Web API 2 и использовать маршрутизацию атрибутов, которая позволит вам просто декорировать ваши классы и действия контроллера с помощью информации о маршруте, и она будет автоматически соединена.

Вам нужно будет настроить его с помощью дополнительного кода для Sitecore 8:

http://kamsar.net/index.php/2014/05/using-web-api-2-attribute-routing-with-sitecore/

http://wp-bartbovendeerdtcom.azurewebsites.net/sitecore-8-webapi-v2-mvc-and-attribute-routing/

Другие вопросы по тегам