更新:我为选择列表项添加了绑定排除。
现在,我知道没有 IEnumerable 类型的 ViewDataItem 有它们的键等等。
如果我不能将 viewModel 用于选择列表,那有什么意义呢?
在 POST 操作中出现此错误。我知道以前有人问过这个问题,但是我按照说明无济于事。有什么想法可能是错的吗?不确定我是否应该包含视图...
这是模型:
公共课外展{
[DisplayName("Number of Mailings")]
[Range(1, 100000,ErrorMessage="Please a positive number for Number of Mailings")]
public int mailings { get; set; }
[DisplayName("Number of Calls")]
public int pcalls { get; set; }
[DisplayName("Number of Emails")]
public int emails { get; set; }
[DisplayName("Number of Walkins")]
public int walkins { get; set; }
[DisplayName("Number of Faxes")]
public int faxes { get; set; }
public int osid { get; set; }
public int month { get; set; }
public int year { get; set; }
public Outreach()
{
}
}
}
这是视图模型:
public class OutreachViewModel
{
[DisplayName("Outreach Specialist")]
public SelectList OutreachSpecialist{ get; set; }
public SelectList Year { get; set; }
public SelectList Month { get; set; }
public Outreach Out {get; set;}
}
这是控制器:
public ActionResult Create()
{
List<tblOutreachSpecialist> spec = repo.getAllSpecialists();
List<pYear> years=repo.getAllYears();
List<pMonth> months=repo.getAllMonths();
OutreachViewModel vw = new OutreachViewModel();
vw.Year = new SelectList(years, "id", "pYear1");
vw.Month = new SelectList(months, "id", "pMonth1");
vw.OutreachSpecialist = new SelectList(spec, "OSID", "LastName");
return View(vw);
}
[HttpPost]
public ActionResult Create(OutreachViewModel vm)
{
if (ModelState.IsValid)
{
repo.Add(vm.Out);
repo.Save();
}
return View(vm);
}