2015-01-16 3 views
0

Ok, так что я написания вид получить следующую модель:Возвращение выбор списка объектов с точки зрения

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; } 

} 

Идея заключается в том, что пользователь представлен мастер-зрения. Первая страница - это список курсов, в которых они могут выбрать один курс. Затем нажмите «Далее», и они будут представлены списком людей и могут сделать выбор. Затем нажмите еще раз, чтобы получить обзор того, что они выбрали.

Выбранный CourseId был простым использованием javascript для установки скрытого значения, но у меня возникли проблемы с получением идентификаторов людей, выбранных в список 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> 

Как вы, наверное, можно сказать, я несколько неопытен в аспида, но это мой подход совершенно глупый? Должен ли я делать это по-другому? Пожалуйста, помогите, если сможете.

Если возможно, я, конечно, также хотел бы поддерживать состояние, чтобы я мог вернуться и по-прежнему иметь те же самые люди, которые переключались даже после обновления.

Заранее спасибо

+0

Что делает toggleSelected делать? Что происходит на форме submit? Чтобы вернуть выбранные люди на сервер при следующем запросе, вам нужно как-то создать данные формы из них. Вы можете сделать это, добавив INPUT-элементы в DOM или создав данные формы в javascript, которые запускаются при отправке формы. – esmoore68

+0

atm all toggleSelected is is toggle класс, показывающий, что выбран текущий человек или нет. Я думаю, проблема в том, что я не уверен, как писать элементы INPUT, чтобы привязка модели работала по назначению. – Thomas

+1

Вы можете ознакомиться с http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/ для получения подробной информации о том, как работает привязка модели к IEnumerables. Вам все равно придется иметь дело с тем, чтобы эти элементы были добавлены в DOM как элементы INPUT. – esmoore68

ответ

1

Вы можете проверить haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx подробной информации о том, как модель связывания с IEnumerables работает. Вам все равно придется иметь дело с тем, чтобы эти элементы были добавлены в DOM как элементы INPUT.

Смежные вопросы