ビューに 2 つの選択リストがあります。ページ全体を投稿せずに、最初の選択リストの選択された項目の値に従って、2 番目の選択リストの項目を設定する必要があります。これを実現する最善の方法は何ですか?
ビュー内の選択リストは次のとおりです。
<tr>
<td>
<div class="editor-label">
@Html.LabelFor(model => model.PersonnelAreaID)
</div>
</td>
<td>
<div class="editor-field">
@Html.DropDownListFor(model => model.PersonnelAreaID, TLMS_DropDownLists.PersonnelAreas)
</div>
</td>
</tr>
<tr>
<td>
<div class="editor-label">
@Html.LabelFor(model => model.SupervisorID)
</div>
</td>
<td>
<div class="editor-field">
@Html.DropDownListFor(model => model.PersonnelAreaID, TLMS_DropDownLists.ApprovingAuthorities)
</div>
</td>
</tr>
現在、それらに入力している方法は次のとおりです。
public static List<SelectListItem> PersonnelAreas
{
get
{
List<SelectListItem> personnelAreas = new List<SelectListItem>();
personnelAreas.Add(new SelectListItem { Value = "", Text = "" });
foreach (PersonnelArea pa in PersonnelArea.GetAllPersonnelAreas())
{
personnelAreas.Add(new SelectListItem { Value = pa.AreaID.ToString(), Text = pa.AreaTitle });
}
return personnelAreas;
}
private set { }
}
public static List<SelectListItem> ApprovingAuthorities
{
get
{
List<SelectListItem> returned = new List<SelectListItem>();
returned.Add(new SelectListItem { Text = "", Value = "" });
foreach (Employee item in Employee.GetAllEmployees().Where(e => e.UserRoleID == 2 || e.UserRoleID == 5))
{
returned.Add(new SelectListItem { Text = string.Format("{0} {1}", item.FirstName, item.LastName), Value = item.ID.ToString() });
}
return returned;
}
private set { }
}
PersonnelArea に該当するものだけを表示するには、ApprovingAuthorities 選択リストが必要です。