2016-07-22 4 views
0

SQLテーブル(linqとMVC5、ASP.NETなど)の関連データを使用してリストを作成するドロップダウンがあります。現在、私のドロップダウンcontollerに、このようなものです:「Add New」を選択したRazor DropDown

ViewData["TeamList"] = new SelectList(db.Players.Select(p => p.Team).Distinct(), TeamFilter); 

とビューは次のようになります。

<span class="pull-right searchDD" id="TeamDD">Team: @Html.DropDownList("TeamList", "-All-")</span> 

私は、「新規追加」と言い、リストの一番上に選択肢を追加したいですその選択はチームコントローラのために私の "作成"アクションと呼ばれます。私はこれをしますか?出来ますか?

私はその後、追加のように、このリストの先頭に新しいオプションを追加し、DBのデータとのリストを構築することができ、おそらく考えた:THEN 99が選択されているの値をnmonitorするのjQueryを使用し

List<SelectItemList> TeamList = new List<selectItemList>(); 
TeamList.Add(new SelectListItem { Text = "Add NEW", Value = "99" }); 
foreach(var team in db.Players.Select(p => p.Team).Distinct()) 
{ TeamList.Add{ Text = team.Name, Value= team.id };} 

ドロップダウンで、Create Controller Actionをロードしますが、これは面倒でコード集約的です。

もっと簡単な方法はありますか?そうでない場合は、JQUERYからコントローラー/アクションをロードするにはどうすればいいですか(私もそれも検索できます)。

+1

このアプローチは私にとっては妥当なものです。 99を使用しません。有効なプレーヤーIDとの衝突を回避するために、負の数または0またはnullを使用します(IDの値をオプション値として使用する場合) – Shyju

+1

あなたの提案は、しかし、なぜ新しいアイテムを追加するためのドロップダウンに隣接するリンクやボタンがないのですか? –

+0

実際、UXは本当にボタンを使うべきです。 [Bootstrap input group](http://getbootstrap.com/components/#input-groups)機能を使用してドロップダウンに「接続」させることもできます。あなたは、アクションを実行するために '