我正在處理一個需要從資料庫創建下拉串列的專案。下拉串列包括供應商所在的州。但是,下拉串列回傳重復值。目的是使用下拉選單按供應商所在的州過濾供應商。
控制器:
public ActionResult Index()
{
ViewBag.State = new SelectList
(db.Vendors
.OrderBy(v => v.State)
.Distinct(),
"State", "State");
return View(db.Vendors.ToList());
}
看法:
@Html.DropDownList("State", null, "Select State", htmlAttributes: new { @class = "nav-link active", @onchange = "FillByState()" })
我已經嘗試了我在這里找到的其他似乎有類似問題的解決方案。
我在控制器中嘗試了這個:
public ActionResult Index()
{
ViewBag.State = new SelectList
(db.Vendors
.Select(v => v.State)
.Distinct(),
"State", "State");
return View(db.Vendors.ToList());
}
但這引發了以下例外:
例外詳細資訊:System.Web.HttpException:DataBinding:“System.String”不包含名為“State”的屬性。
在這一點上,我正在摸索我能做什么。
域名注冊地址:
我正在嘗試創建一個唯一值(狀態)的下拉串列。但是,到目前為止我所嘗試的要么創建一個出現多次的狀態下拉串列,要么引發例外。
uj5u.com熱心網友回復:
您走在正確的軌道上,但是一旦您選擇了狀態名稱(并使用 Distinct 將其減少),您就不再需要在 SelectList 建構式中為資料值和資料文本欄位指定名稱。字串本身將同時用作兩者。不過,您可能仍然想要一個排序串列。
嘗試
public ActionResult Index()
{
ViewBag.State = new SelectList
(db.Vendors
.Select(v => v.State)
.Distinct()
.OrderBy(s => s));
return View(db.Vendors.ToList());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/339677.html
標籤:C# asp.net-mvc 林克
