21 апреля 2019 г. 17:40:59

Баг с UrlRewriting

8 years ago
#280 Цитировать
Здравствуйте.

Я хочу убрать разрешения aspx из url пути.

Для этого я делаю следующее:
1. В web.config добавляю <modules runAllManagedModulesForAllRequests="true">
2. В настройках сайта изменяю url format для продуктов на {0}Products/{1}-{2}
3. В файле UrlRewriting.config изменю правило для продукта на    
<add name="ProductDetailsRewrite" virtualUrl="^~/products/([0-9]*)-([\w-]*)(?:\?(.*))?"
         rewriteUrlParameter="ExcludeFromClientQueryString"
         destinationUrl="~/product.aspx?productid=$1&amp;sename=$2&amp;$3"
         ignoreCase="true" />

В итоге после первого пункта все работает хорошо.
После второго и третьего пунктов навигация по сайту работает хорошо, но нельзя добавить товар в корзину не зарегистрировавшемуся пользователю ( у зарегистрировавшегося пользователя все работает хорошо, проверял только на администраторе )

Нельзя добавить, как это?
Когда открываю страницу товара и жму кнопку "В корзину", то меня перенаправляет на страницу ~/shoppingcart.aspx.
Но на этой странице нет ни одного товара (написано, что корзина пуста). Запустив под debug'ом я заметил, что при переходи на страницу корзины сбрасывается "Nop.CustomerSession" в (NopContext)HttpContext.Current.Items["NopContext"].

Помогите решить проблему.

Спасибо.
0
8 years ago
#281 Цитировать
Сделал, чтобы метод CommonHelper.IsContentPageRequested() возвращал true, на мои url без расширения. И все заработало.

В самых общих чертах понятно, почему сработало, но только в саааамых общих.
Может кто-нибудь объяснить почему для зарегистрированного пользователя работало и без этого.
И в каком месте происходит установка значения в NopContext.Current.Session.
0
7 years ago
#411 Цитировать
более правильное решение указано здесь
http://www.nopcommerce.com/boards/t/8188/using-url-routing-in-190.aspx
Там нет статических линков на ответ в топике, поэтому на на всякий случай смотреть ответ от cybernexus
0