Добавить новую строку для новой записи в конец таблицы

У меня есть таблица данных, которую я отображаю в режиме массового редактирования, поэтому все строки можно редактировать одновременно. Следующий код прекрасно работает для редактирования существующих данных:


    
        
            Row
            Parent
        
    
    
    @for (int i=0;i< Model.Config.Count;i++)
    {
    
        
            @Html.HiddenFor(m => Model.Config[i].ConfigurationId)
            @Html.EditorFor(m=>Model.Config[i].RowNumber)
        
        
            @Html.EditorFor(m=>Model.Config[i].Parent)
        
    
    }
    


Так как я'Используя цикл for, Razor заботится об изменении имен всех отображаемых элементов, чтобы моя модель правильно связывалась с моим контроллером.

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

То, что я хотел бы сделать, это выполнить эту асинхронную работу с использованием некоторого JavaScript вместо этого. Пока что я планирую создать действие, которое будет возвращать новую визуализированную строку на основе последнего индекса (последний индекс хранится в скрытом поле hNextConfigIndex).

действие

    public ActionResult GetNewRow(string rowType, int index)
    {
        ViewBag.RowType = rowType;
        ViewBag.Index = index;

        Document t = new Document();
        if (rowType == "Config")
        {
            t.Config = new List();
            t.Config.Add(new Configuration());
        }
        else if (rowType == ".....")
        {
        }

        return View("_NewRows", t);
    }

Посмотреть

@model Data.Document

@{
    Layout = null;
}

@if (ViewBag.RowType=="Config")
{   
    for(int i=ViewBag.Index;i Model.Config[i].ConfigurationId)
            @Html.EditorFor(m=>Model.Config[i].RowNumber)
        
        
            @Html.EditorFor(m=>Model.Config[i].Parent)
        
    
  }
}

Действие работает, но мнение, конечно, нет. Существует только одна пустая фиктивная запись, поэтому, конечно, индекс i (где я> 0) не будет существовать.

Я уверен, что есть другие способы сделать это. Я мог бы просто скопировать последнюю строку, используя javascript, и изменить значения, но мне пришлось бы сделать много жесткого кодирования в javascript таким образом.

Ответы на вопрос(1)

Ваш ответ на вопрос