Как опубликовать динамически созданные поля в таблице с помощью jquery/asp.net mvc

StackOverflow https://stackoverflow.com/questions/1928462

Вопрос

У меня есть кнопка, которая будет динамически создавать новую запись (строку в таблице) с помощью jQuery.Каждая запись представляет собой строку в таблице html.

Для каждой строки каждый столбец имеет входные данные (текстовое поле, переключатель, флажок) и т. д.

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

Когда я публикую форму, я, кажется, не вижу этих данных в коллекции форм и не совсем понимаю, как преобразовать эти элементы управления в объект данных для привязки.

Итак, по сути, есть 2 вопроса:

  1. Есть ли какие-либо проблемы с динамически создаваемыми элементами управления и их отображением в сообщении формы?

  2. Как передать табличную структуру данных моему контроллеру.Я почти хочу, чтобы каждая строка представляла некоторый объект записи, а затем передавала коллекцию записей контроллеру, если что-то подобное возможно.

Какие-либо предложения?

Это было полезно?

Решение

Чтобы получить коллекцию, убедитесь, что имена текстовых полей имеют вид «MyRecord.MyList[0].Field1».MVC автоматически преобразует это в перечислимое.При добавлении JavaScript просто убедитесь, что каждая добавленная строка имеет правильно увеличенный индекс (например, новые поля с именем «MyRecord.MyList[1].Field1»).

Другие советы

Вам необходимо убедиться, что ваши динамически созданные элементы находятся между тегами формы.

Привязка модели по умолчанию будет привязана к массиву объектов, если вы обязательно назовете свои поля таким образом, чтобы они стали «Thing[3].Name» (это поле «Имя» в четвертой строке, массив с нулевой привязкой).

Ваша подпись для вашего метода Action станет примерно такой:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MethodName(thing[] things)
{
    ...  
}

Доброта,

Дэн

Убедитесь, что идентификатор каждой строки уникален, но он должен отправляться обратно, если находится в форме, отправляемой на сервер...Как у тебя дела с постом?Вы делаете публикацию с помощью JQuery?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top