データベース表のDropDownListを行います。私は私の作成したアクションにのみSport
プロパティのドロップダウンリストを作成したい個別
|ID| |Athlete| |Sport|
1 Jacoby Ellsbury Baseball
2 Dustin Pedroia Baseball
3 Kobe Bryant Basketball
4 Lebron James Basketball
5 Patrick Kane Hockey
6 Sidney Crosby Hockey
私がしようとしているもの:
ViewBag.Sport = new SelectList(db.AthleteTable.Distinct(), "ID", "Sport");
Or:
ViewBag.Sport = new SelectList(db.AthleteTable, "ID", "Sport").Distinct();
CSHTML:
<div class="form-group">
@Html.LabelFor(model => model.Sport, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownList("Sport", null, "-- Select Sport --", htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.Sport, "", new { @class = "text-danger" })
</div>
</div>
これは私のドロップダウンリストをレンダリングするが、値はそう繰り返し:
Baseball
Baseball
Basketball
Basketball
Hockey
Hockey
私が欲しいもの:
Baseball
Basketball
Hockey
すべてのヘルプは高く評価されます。
UPDATE:私は他のdropdownlistsを作成し、そのようにスポーツすることにより、各選手を分離できるためであるように私のテーブルがある理由
理由:
List<SelectListItem> lstAthletes = new List<SelectListItem>();
using(var context = new ConnectionString())
{
List<AthleteTable> lstAthletes = context.AthleteTable.ToList();
var groups = lstAthletes.GroupBy(x => x.Sport);
foreach(var group in groups)
{
var slg = new SelectListGroup() { Name = group.Key };
foreach(AthleteTable athlete in group)
{
SelectListItem item = new SelectListItem() { Text = athlete.Athlete, Value = athlete.ID.ToString(), Group = slg };
lstAthletes.Add(item);
}
}
}
「スポーツ」はあなたのデータセット内の別の話ではありませんか?あなたはデータを非正規化することを検討して、これを(そして他のタスクも)きれいにするでしょう。 –