我创建了一个自定义 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”)
@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);
}
在发布模型时,timeRequest.Days 始终为空。