Можно ли использовать строку запроса для управления персонализированным контентом в Sitecore 7.5?
Я пытаюсь отобразить персонализированный контент на странице, если я нажал на конкретную ссылку на конкретной странице. Моей мыслью было иметь параметр в ссылке, такой как:
<a href="Product-Page/?home=1">Go to product page</a>
Затем на "странице продукта", надеемся, используя механизм правил, проверьте, существует ли параметр home в строке запроса. Если так, то отобразите часть контента.
Я не могу найти лучший способ сделать это с Sitecore 7.5. Может быть, это неправильный подход.
2 ответа
В стандартной версии Sitecore 7.5 нет правил для использования строки запроса. но вы можете легко создать правило и использовать его с помощью функции персонализации от Sitecore.
См. http://blog.martinmiles.net/post/rules-engine-and-sitecore-personalization-based-on-url-query-string-parameters для полного описания, а Пример включает ссылку на github с кодом https://github.com/MartinMiles/Personalization
Поэтому у вас должно быть что-то вроде этого:
public ActionResult Index(string name)
{
Student student = new Student();
student.Name = "John";
if (!String.IsNullOrEmpty(Request.QueryString["name"]))
{
student.Name = Request.QueryString["name"];
}
return View(student);
}
Для этого примера мой контроллер называется Test. Поэтому, если я захочу вызвать этот метод, я сделаю ~ / test / index, если я сделаю так, чтобы объект студента содержал имя John, однако если я сделаю ~/test/index? Name = Denis, я отправлю объект с имя Денис
Здесь имя будет меняться только тогда, когда мы передадим строку запроса "имя" со значением.