【发布时间】:2023-03-31 01:04:01
【问题描述】:
当我提交表单时,我的 ViewModel 中的课程列表得到空值。 这是我的 ViewModel:
public class CandidateViewModel
{
public string Name { get; set; }
public IList<CourseViewModel> Courses { get; set; }
public CandidateViewModel()
{
Name = "Kiwanax";
Courses = new List<CourseViewModel>();
for (int count = 0; count < 5; ++count)
{
Courses.Add(new CourseViewModel(
string.Format("Course_{0}", count), 5));
}
}
}
public class CourseViewModel
{
public long ID { get; set; }
public string Name { get; set; }
public OptionViewModel SelectedOption { get; set; }
public IList<OptionViewModel> Options { get; set; }
public CourseViewModel(string name, int numberOfOptions)
{
Name = name;
Options = new List<OptionViewModel>();
for (int count = 1; count <= numberOfOptions; ++count)
{
Options.Add(new OptionViewModel(count.ToString(),
string.Format("Option {0}", count)));
}
SelectedOption = Options[0];
}
}
public class OptionViewModel
{
public string Value { get; set; }
public string Description { get; set; }
}
好的。当我根据我的 IList 创建 DropDownLists 时,它工作正常。
<ul id="cursos">
@for (int count = 0; count < Model.Courses.Count; ++count)
{
<li>
@Html.DropDownListFor(i => i.Courses[count].SelectedOption,
new SelectList(Model.Courses[count].Options, "Value", "Description", Model.Courses[count].SelectedOption))
@Html.HiddenFor(i => i.Courses[count].ID)
@Model.Courses[count].Name
</li>
}
</ul>
但是,当我从表单中发帖时,我会从该 IList 中获取空值。
【问题讨论】:
-
这个 ID 在@Html.HiddenFor(i => i.Courses[count].ID) 中来自哪里?
-
我将一个名为 ID 的属性放入 CourseViewModel。但是忘记写在这里了,抱歉。
-
这个 CursosDisponiveis 对象是什么?你能显示更多代码吗?很难说是怎么回事?
-
现在我修正了我的错误。我在主题结束时说过:当我从表单中发布时,名为 Courses 的 IList 正在获取空值。所有属性均为空。那是我的问题。
-
问题出在这里
@Html.DropDownListFor(i => i.Courses[count].SelectedOption,lambda 的右侧不应该是复杂类型
标签: c# asp.net-mvc-3 razor viewmodel