ステータスのリストをHtml.DropDownListに渡しています。私はこれらの項目の1つをデフォルトとして選択する方法を探していたので、ユーザーが何も変更しなければ、正しい状態がモデルに返されます。私が見つけたものはすべて、追加の値(通常は「ヌル」オプション)をリストに追加することを扱っています。DropDownListからデフォルト値を選択
どのように既定のアイテムを既定に設定しますか?
モデル:
public class ListStatus
{
public string Name { get; set; }
public Guid StatusID { get; set; }
}
public class ViewModel
{
public List<ListStatus> Statuses { get; set; }
}
ビュー:
@Html.DropDownList("StatusID", Model.Statuses.Select(s => new SelectListItem() { Text = s.Name, Value = s.StatusID.ToString() }), new { @class = "medium", required = true })
サンプルデータ:
'11111111-1111-1111-1111-111111111111': Option 1,
'22222222-2222-2222-2222-222222222222': Default,
'33333333-3333-3333-3333-333333333333': Option 3,
'44444444-4444-4444-4444-444444444444': Option 4
それでモデルを渡す前に 'StatusID'の値をコントローラーのオプション値の1つと一致するように設定してくださいモデルのバインディングがどのように機能するかが選択されます。また、ビューモデルに 'Guid StatusID'プロパティが含まれていない場合は、それを追加します(厳密に型付けされた' @Html.DropDownListFor(m => m.StatusID、Model.Statuses) '' Statuses'は 'IEnumerable 'を実行し、ビューではなくコントローラに' SelectList'を生成します。 –