Переадресация с ASP.NET в выпадающем списке
-
03-07-2019 - |
Вопрос
Какой наилучший метод обработки ситуации, когда у вас есть ASP.Net Выпадающий список, который используется для ссылки на другой URL
отредактировано для большей ясности
Вот основной сценарий:
Выпадающий список с привязкой к нему 5 городов
Выбрав один из городов, я должен перейти по URL-адресу, основанному на этом городе
Прямо сейчас я отправляю ответную публикацию, используя событие "OnSelectedIndexChanged", затем обрабатываю событие и перенаправляю на соответствующую страницу.
Однако это приводит к 2 обращениям к серверу в каждом выбранном городе, 1 для обработки обратной передачи и перенаправления, затем еще один для отображения фактической страницы.
Является ли использование пользовательского javascript для создания URL-адреса моим лучшим вариантом?
Решение
Вы можете добавить обработчик на стороне клиента для события изменения выбора, а затем перенаправить на нужную страницу на основе выбранного значения:
<asp:DropDownList ID="ddl" runat="server"
onchange="document.location.href = this.value;" >
<asp:ListItem Text="a" Value="http://url1"></asp:ListItem>
<asp:ListItem Text="b" Value="http://url2"></asp:ListItem>
<asp:ListItem Text="c" Value="http://url3"></asp:ListItem>
<asp:ListItem Text="d" Value="http://url4"></asp:ListItem>
</asp:DropDownList>
Другие советы
Установите значение autopostback равным false и добавьте это в событие на стороне клиента onchange (предполагая, что значение содержит полный URL, если нет, отредактируйте соответствующим образом):
window.navigate(this.options[this.selectedIndex].value);
Мне просто интересно, почему бы не получить информацию о городе через AJAX (есть несколько видеоуроков по www.asp.net/learn) и показывать пользователю информацию о городе вместо того, чтобы создавать другие дополнительные переходы на страницу?
это всего лишь идея, идея Web 2.0 :)
Если страница большая и вас беспокоит время рендеринга, вы можете использовать ajax для рендеринга результатов запроса.Затраты сервера на обработку данных post и перенаправление должны быть минимальными, и не стоит делать это на стороне клиента.Лично я бы больше сосредоточился на отображении данных, которые нужны пользователю в первый раз.
Обычно я бы согласился, но для каждой страницы необходимо иметь конкретный URL-адрес + также восстанавливать другие части страницы при нажатии на URL.
Но все же спасибо за предложения!