2012-11-08 2 views
0

Я создаю веб-приложение для разработки. Когда рабочий день загружается, он отображает ФОРМУ, у которой есть серия текстовых полей для каждого упражнения, чтобы записать количество повторений и вес, сделанный для каждого набора. Для каждого упражнения требуется другое количество наборов.TextBoxFor динамическая динамическая модель в цикле

Я создал класс, который содержит два типа объектов, список упражнений из класса сущности/таблицы сущностей ExerciseReference и класс сущности для записи данных, которые пользователь вводит в форму и отправляет.

Моя модель выглядит следующим образом:

public class ExerciseListModel 
{ 
    public List<ExerciseRef> exercises { get; set; } 
    public ExerciseREC recordedExercises { get; set; } 
} 

При создании текстовых полей Репс и весов для каждого упражнения, мой Razor HTML выглядит примерно так:

@foreach(ExerciseRef item in Model.exercises) 
     { 
      <div class="editor-label"> 
      <h3>@item.Name.ToString()</h3> 
      </div> 
      <p>@item.Description.ToString()</p> 

       for (int i = 0; i < item.NumberOfSets; i++) 
       {       
        <text>Set #: </text> @(i + 1)<br /> 
        <text>REPS: </text> @Html.TextBoxFor(m => m.recordedExercises.Set1Reps)<br /> 
        <text>WEIGHT: </text> @Html.TextBoxFor(m => m.recordedExercises.Set1Weight) <br /><br /> 

       } 

     } 

Так по существу, это для цикла в цикле foreach. Цикл foreach создает HTML-список всех упражнений, в то время как цикл for создает текстовые поля для повторений и весов.

мне нужно число в Set1Reps в следующей строке:

@Html.TextBoxFor(m => m.recordedExercises.Set1Reps) 

быть динамичным и приращения с петлей. Мне нужно, чтобы у него Set1Reps для Set 1 и изменилось на Set2Reps для Set 2 и т. Д. И так далее.

Любая идея, как я могу это сделать?

ответ

1

Я бы изменил вашу модель данных, чтобы содержать наборы и повторы в качестве коллекций в свойстве записанныхExcercises. Затем вы можете перебирать их, как вы итерации по всему набору упражнений.

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