【发布时间】:2013-11-22 00:22:07
【问题描述】:
我将问题列表添加到视图模型中,其中包含该属性作为列表并将其发送到视图。我可以执行一个 foreach 循环并在屏幕上显示所有问题,但是当我单击表单上的提交并将该视图模型发送到控制器时,问题列表为空,我不确定如何将这些问题添加回视图型号。
将列表添加到 VM。
AddEditListingViewModel AELVM = new AddEditListingViewModel
{
ListingQuestions = new List<ListingDetailQuestionViewModel>(),
States = states,
Cities = cities,
Agents = agents,
};
foreach (ListingDetailQuestionViewModel question in questions)
{
ListingDetailQuestionViewModel LDQVM = new ListingDetailQuestionViewModel
{
QuestionGuid = question.QuestionGuid,
QuestionNumber = question.QuestionNumber,
Question = question.Question,
QuestionSideNotes = question.QuestionSideNotes
};
AELVM.ListingQuestions.Add(LDQVM);
}
return View("AddNewListing", AELVM);
在视图中。
@foreach (ListingDetailQuestionViewModel value in Model.ListingQuestions)
{
@Html.Label(value.Question + "?", new {Id = value.QuestionGuid})
@Html.Label("Answer: ")@Html.TextBox("Answer", "", new {Id = value.QuestionGuid})
<br/>
}
此视图模型的视图是强类型的。 我可以打开列表并查看值,但提交表单后,所有问题都为空。
【问题讨论】:
-
要将模型中的值传递回控制器,它必须包含在 for 帮助器(textboxfor、dropdownlistfor 等)中
-
这是模型中的一个列表,我不知道如何打开那个列表并仍然保留在模型中。
标签: asp.net-mvc asp.net-mvc-4 c#-4.0 razor separation-of-concerns