カスタム DataType("Days") を作成し、選択リストを適切にレンダリングする部分ビュー "Days.cshtml" を作成できました。
フォームから選択リストを問題なく設定できますが、カスタム DataType 値が入力されたモデルを投稿する方法に関するドキュメントが見つからないようです。
public class TimeRequestModel
{
public int EmployeeID { get; set; }
public int JobAllocationID { get; set; }
[DataType("Days")]
public List<SelectListItem> Days { get; set; }
}
Days.cshtml (新しい「Days」を作成しているため、モデルはおそらく null になります)
@model TimeRequestModel
@Html.DropDownList("", (Model != null ? Model.Days : new List<SelectListItem>()), new { @class = "customfield", @type = "custom", @multiple = "multiple", @size = "14", @style = "text-align: center; float: right; width: 225px;" })
私のコントローラー:
[HttpPost]
public ActionResult CreateRequest(TimeRequestModel timeRequest)
{
if (ModelState.IsValid)
{
translator.CreateTimeRequest(timeRequest);
return RedirectToAction("Index");
}
return View(timeRequest);
}
モデルを POST すると、timeRequest.Days は常に null になります。