Когда страница загружается, все работает нормально. Но когда я отправляю форму, мои dropdownlists теряют предыдущие выбранные элементы после обновления страницы.Как сохранить список каскадов выбранных элементов после отправки формы?
Как изменить мою функцию для инициализации списков dropdownlists и сохранить предыдущие выбранные элементы (на обоих), если они существуют.
Вот мое мнение с JavaScript, который инициализирует мои DropDownLists:
@model Models.Book
@{
ViewBag.Title = "Index";
}
@section scripts {
<script type="text/javascript">
$(function() {
$.getJSON("/Home/Books/List", function(data) {
var items = "<option>--------------------</option>";
$.each(data, function(i, book) {
items += "<option value='" + book.Value + "'>" + book.Text + "</option>";
});
$("#Books").html(items);
});
$("#Books").change(function() {
$.getJSON("/Home/Chapters/List/" + $("#Books> option:selected").attr("value"), function(data) {
var items = "<option>--------------------</option>";
$.each(data, function(i, chapter) {
items += "<option value='" + chapter.Value + "'>" + chapter.Text + "</option>";
});
$("#Chapters").html(items);
});
});
});
</script>
}
@using (@Html.BeginForm("ListChapterContent", "Home"))
{
<div id="header">
<label for="Books">Books</label>
<select id="Books" name="Books"></select>
<label for="Chapters">Chapters</label>
<select id="Chapters" name="Chapters" onchange="this.form.submit();"></select>
</div>
Вот моя модель:
public class Book
{
public string Translator{ get; set; }
public string Edition{ get; set; }
public List<Book> Books{ get; set; }
public int SelectedBook { get; set; }
public int SelectedChapter { get; set; }
}
Вы должны использовать HtmlHelpers для создания ваших элементов управления - например @ Html.DropDownListFor (m => m.Books, Model.BookList) ', и параметры должны быть сгенерированы в контроллере, прежде чем вы вернете представление. –
Выбранная книга и выбранная глава устанавливаются на моей модели в контроллере в представлении моей формы. Эта информация может быть доступна на моем представлении, так как это строго типизированный вид, но я просто не знаю, как с этим справиться. – Daniel
Я пытался использовать HtmlHelpers, но я мог заметить, что они работают как каскадный dropdownlist, поэтому я нашел эту функцию в примере на youtube и использовал ее вместо этого. – Daniel