Я пытаюсь реализовать перезапись URL в моем существующем приложении, и мне удалось заставить страницу и ссылки работать, за исключением того, что моя целевая страница не получает значения строки запроса.
Мой код основан на примере ниже:
http://dotnetguts.blogspot.com/2008/07/url-rewriting-with-urlrewriternet.html
Обычно у меня есть страница default.aspx со ссылками на другую страницу;
directory_item.aspx?Item_Id=1&Category_Id=1
directory_item.aspx?Item_Id=2&Category_Id=1 and so on...
Код в моей веб-конфигурации выглядит следующим образом;
< rewriter >
< rewrite url="~/(.+)-(.+).aspx" to="~/directory_item.aspx?MyTitleItem_Id=$2" / >
< /rewriter >
Что касается функции, упомянутой в приведенной выше ссылке на веб-сайт, я изменил ее, чтобы она также соответствовала моему идентификатору категории;
Public Shared Function GenerateURL(ByVal Title As Object, ByVal strId As Object, ByVal strCategoryId As Object) As String
Dim strTitle As String = Title.ToString()
...
...
...
'Append ID at the end of SEO Friendly URL
strTitle = "~/" & strTitle & "-" & Convert.ToString(strId) & "-" & Convert.ToString(strCategoryId) & ".aspx"
Return strTitle
End Function
На моей странице Load of directory_item.aspx я ищу значения строки запроса Item_Id и Category_Id, и, поскольку я реализовал вышеприведенное, страница возвращает только пустую страницу без данных? Я что-то упустил и просто не знаю где? Любая помощь будет оценена.
URL-адрес изменяется на 'the-title-page-2-1.aspx', и он загружает стили и все, кроме данных. Так что с моим кодом должно быть что-то не так.
То, что я обнаружил до сих пор;
Изменяя код в файле веб-конфигурации, я получил его на работу; за исключением того, что теперь мне нужно получить второй параметр строки запроса;
url="(.+)-(.+).aspx" to="~/directory_item.aspx?Item_Id=$2"
Какие-нибудь советы, как мне заставить работать второй параметр строки запроса? Спасибо