[英]How to change drop-down list on select
我有一個由SQL Server填充的下拉列表,我使用帶有剃刀的Visual Studio 2010,cshtml和MVC模式創建此項目。 我要嘗試做的是,當有人從更改下拉列表中選擇一個值時,它將使用該書的信息更新頁面。
我需要以下三點幫助:
我從填充下拉列表開始。
我的視圖如下所示
BookName: @Html.DropDownList("BookName", ViewData["BookName"] as IEnumerable<SelectListItem>, new { id = "UserSelectedValue" })
我的控制器:
public ActionResult Index()
{
ViewData["BookName"] = new SelectList(_context.BookName.Select(a => a.Book_Name).Distinct());
return View();
}
下拉列表不能使頁面單獨發回到您的控制器。 您需要執行以下兩項操作之一:
無論哪種方式,您都需要將下拉/提交按鈕包裝在表單中。
選項1
<form>
BookName: @Html.DropDownList("BookName", ViewData["BookName"] as IEnumerable<SelectListItem>, new { id = "UserSelectedValue" })
<input type="submit" value="Show results" />
</form>
選項2
<script type="text/javascript">
// assuming you're using jQuery
$(function() {
$('#UserSelectedValue').change(function() {
$(this).parent('form').submit();
});
});
</script>
<form>
BookName: @Html.DropDownList("BookName", ViewData["BookName"] as IEnumerable<SelectListItem>, new { id = "UserSelectedValue" })
<input type="submit" value="Show results" />
</form>
這樣,您的控制器代碼將變為:
public ActionResult Index(string bookName)
{
ViewData["BookName"] = new SelectList(_context.BookName.Select(a => a.Book_Name).Distinct());
if (!string.IsNullOrWhiteSpace(bookName))
{
ViewData["Books"] = _context.BookName.Where(b => b.Book_Name == bookName).ToList();
}
return View();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.