从视图中返回选择的对象列表

时间:2015-01-16 11:23:04

标签: c# jquery html asp.net-mvc model-binding

好的,所以我写一个视图来接收以下模型:

public class OrderCourseViewModel
{
    public Department Department { get; set; }

    public IEnumerable<LocalizedCourse> Courses { get; set; }
    public IEnumerable<Profile> People { get; set; }

    public int SelectedCourseId { get; set; }
    public IEnumerable<int> SelectedPeopleList { get; set; } 

}

这个想法是向用户呈现向导视图。第一页是他们可以选择一门课程的课程列表。然后单击“下一步”,将显示一个人员列表,并可以进行选择。然后再次单击“下一步”以显示他们所选择的内容。

SelectedCourseId很简单,使用javascript来设置隐藏值,但是我无法将所选人员的ID列入SelectedPeopleList列表。

更糟糕的是,我没有使用复选框或类似的东西,我正在制作一个可以打开/关闭的div列表。

以下是选择视图的人员部分:

<div class="row">
    <div class="wiz2">
        @foreach (var person in Model.People)
        {
            @Html.Partial("_SelectCoursePerson", person)
        }
    </div>
</div>

这是小_SelectCoursePerson视图

@model Kursbyen.Profile
<div class="col-sm-10 img-rounded course" style="border: solid 1px #000000; padding:15px; margin:10px" onclick="javascript: toggleSelected(this, @Model.Id);">
<div class="col-sm-4"><profile picture></div>
    <div class="col-sm-8" style="padding-right:5px">@Model.LastName, @Model.FirstName</div>
</div>

你可能会说我在asp方面缺乏经验,但我的做法是完全愚蠢的吗?我应该采用不同的方式吗?如果可以,请帮忙。

如果可能的话,我当然也希望保持状态,这样我就可以回去,即使刷新后仍然有同样的人打开。

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以查看haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx,了解有关IEnumerables模型绑定的工作原理的详细信息。您仍然需要处理将这些项目作为INPUT元素添加到DOM中。