次のコードを使用して、ユーザーがフォーム上の複数の場所を選択できるようにします。
@Html.DropDownListFor(m => m.location_code, Model.location_type, new { @class = "form-control", @multiple = "multiple" }).
location_codeはList<int>
およびlocation_typeはList<SelectListItem>
データが入力されました。
コードはコントローラーで選択された値を返しますが、ユーザーが編集ボタンをクリックすると、渡されたオブジェクトは選択された値を表示せず、代わりに何も選択されていない通常の初期化されたドロップダウンを表示します。
実際に欲しいのは、ユーザーがフォーム(複数の選択された値を含む)を送信すると、ユーザーが詳細が正しいかどうかを確認するページに移動することです。フェーズでは、選択された複数の値が表示されます。他のフィールドは適切に動作します。
これに関する洞察はありますか?
あなたの見解では:
@Html.ListBoxFor(m => m.location_code, Model.location_type)
必要なのはそれだけです。 ListBoxコントロールを使用しているため、既に複数選択リストになっています。
その後、コントローラーに戻って、次のように選択したアイテムを取得できます。
[HttpPost]
public string SaveResults(List<int> location_code)
{
if (location_code!= null)
{
return string.Join(",", location_code);
}
else
{
return "No values are selected";
}
}