まず、関連するすべての質問を確認しましたが、どれも問題を解決しません。
次のように、複数のプロパティを持つ ASP.NET MVC Html ヘルパー Dropdownlistfor を使用しています。
@Html.DropDownListFor(m => m.SelectedPeople,
Model.People,
new { multiple = "multiple" })
/* Viewmodel for my view */
public class MyModel
{
public IEnumerable<SelectListItem> People { get; set; }
public IEnumerable<string> SelectedPeople { get; set; }
}
ドロップダウンリストに選択した値を事前入力しない場合。それは正常に動作します。選択した値は問題なくアクション メソッドにポストされます。
ただし、ドロップダウンリストに事前入力したい場合、機能しません。次のようにドロップダウンリストに入力します。
model.People = new[]
{
new SelectListItem { Value = "1", Text = "group 1" },
new SelectListItem { Value = "2", Text = "group 2" },
new SelectListItem { Value = "3", Text = "group 3" },
};
model.SelectedPeople = new[] { "2", "3" };
機能しないということは、SelectListItems 2 と 3 が DropDownList で選択されていないことを意味します。