ASP.NET Core MVC Select Tag Helper:Binding Employee lists
このガイドは、従業員のリストをASP.NETコアMVCの選択タグヘルパーに効果的にバインドする方法を示しており、選択した値がEmployeeId
プロパティに正しくマッピングされていることを確認してください。
モデル構造の表示:
ビューモデルが次のように構成されていると仮定しましょう
<code class="language-csharp">public class MyViewModel { public int EmployeeId { get; set; } public string Comments { get; set; } public List<Employee> EmployeesList { get; set; } } public class Employee { public int Id { get; set; } public string FullName { get; set; } }</code>
キーは、
オブジェクトを作成し、ビュー内で使用することです。 コントローラーアクションでそれを行う方法は次のとおりです。
あなたの見解では:SelectList
EmployeesList
これは
<code class="language-csharp">public IActionResult Create() { var vm = new MyViewModel(); vm.EmployeesList = new List<Employee> { new Employee { Id = 1, FullName = "Shyju" }, new Employee { Id = 2, FullName = "Bryan" } }; return View(vm); }</code>
<code class="language-html"><select asp-for="EmployeeId" asp-items="@new SelectList(Model.EmployeesList, \"Id\", \"FullName\")"></select></code>
プロパティを設定してから、ビューに渡します。
SelectList
EmployeeId
FullName
代替:ViewBagを使用(推奨されることはあまりない):Id
可能ですが、その動的な性質とエラーの可能性のために、を使用することは一般にあまり好まれません。 例を次に示します:
EmployeeId
高度なシナリオ:
<code class="language-csharp">public IActionResult Create() { var vm = new MyViewModel(); vm.EmployeesList = new List<Employee> { /* ... your employees ... */ }; vm.EmployeeId = 2; // Pre-selects Bryan return View(vm); }</code>
複数の選択:
ビューモデルでの配列またはリストタイプを使用して、複数の選択を許可します。
ViewBag
<code class="language-csharp">// Controller ViewBag.Employees = new List<SelectListItem> { new SelectListItem { Text = "Shyju", Value = "1" }, new SelectListItem { Text = "Bryan", Value = "2" } }; // View <select asp-for="EmployeeId" asp-items="@ViewBag.Employees"></select></code>
'sプロパティをドロップダウン内のグループオプションに使用します。
より高度な機能とオプションについては、選択したタグヘルパーの公式マイクロソフトドキュメントを参照してください。 モデルから直接以上が従業員のリストをASP.NETコアMVCのSelectタグヘルパーにバインドする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。