У меня есть список пользовательских объектов (книга), и я хочу заполнить второе поле выбора на основе плитки, выбранной в первом раскрывающемся списке. Я видел много ответов о том, как сделать это со статически типизированными списками, но не из объекта asp.net.
public class Book
{
public string Title { get; set; }
public List<string> Chapter { get; set; }
}
Model.books представляет собой список объектов Book выше.
В cshtml:
<div class="form-group">
<label asp-for="Book.Title" class="control-label">Title</label>
<select id="title-select" asp-for="Book.Title" class="form-control">
@foreach (var item in Model.books)
{
<option value="@item">
@Html.DisplayFor(modelItem => item.Title)
</option>
}
</select>
</div>
<div class="form-group">
<label asp-for="Book.Chapter" class="control-label">Chapter</label>
<select id="chapter-select" asp-for="Book.Chapter" class="form-control">
@foreach (var item in chapters?)
{
//Chapter select based on Title chosen above
}
</select>
</div>
JQuery:
$('#title-select').on('change', function () {
var value = this.value
//How to pass the book.chapter object into here to populate the dropdown list
});
Существует не так много книг или глав, так что может быть стоит просто передать все книги, а не использовать Ajax? В основном я не уверен, как получить список книг в JQuery (я не привык к веб-разработке).