同様のケースで私が行うことは次のとおりです。1)言語を編集するためのビューモデルを作成します
public class LanguagesModel
{
public IEnumerable<int> SelectedLanguageIds { get; set; }
public MultiSelectList languages { get; set; }
}
2) コントローラーにモデルを入力します。
public ActionResult Index()
{
List<Language> languages = _languageService.GetLanguages();//however you get the languages from your datasource
var temp = new MultiSelectList(
languages.Select(l => new { Value = l.LanguageId.ToString(), Text = l.Name }),
"Value",
"Text");
LanguagesModel model = new LanguagesModel();
model.languages = temp;
return View(model);
}
3) DropDownListFor ヘルパーを使用するビューを作成します。
@model LanguagesModel
@using (Html.BeginForm(Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" })))
{
@Html.ValidationSummary(true)
<fieldset>
@Html.ListBoxFor(m => m.SelectedLanguageIds, Model.languages)
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
"Index" と "Home" を実際に使用しているアクションとコントローラーに置き換えてください。
DropDownList の代わりに ListBox を使用するように変更されたコードを編集します。ダリン・ディミトロフの答えに触発されました