2010-04-12 2 views
4

Я создаю приложение asp.net MVC, в котором я хочу предоставить функциональность для добавления элементов управления динамически. У меня есть форма, в которой есть 2 текстовых поля для имени и фамилии, которые служат в качестве одного элемента управления. Теперь пользователь может добавить любое количество этой группы элементов управления. Я могу добавить эти элементы управления на странице с помощью java-скрипта. Но я не знаю, как получить доступ к значениям этих элементов управления, когда пользователь отправляет.Добавление элементов управления динамически при нажатии кнопки в asp.net mvc

Пожалуйста, помогите в этом или предложить другой подход

Благодарности

ответ

2

Есть чтение статьи Editing a variable length list, ASP.NET MVC 2-style Стив Сандерсон. Он показывает, как делать то, что вы ищете, в чистом стиле MVC.

+0

Есть ли новые более эффективные решения, данные это было 4 года ?? –

2

посмотреть на использование вызова Jquery AJAX для операции представить.

Вы можете взаимодействовать через элементы управления (легко с помощью селектора классов jquery и $ .each) и перетаскивать переменные в переменную js. Разберите его как JSON и передайте данные обратно контроллеру с помощью вызова ajax.

1

Если вы исходите из перспективы webforms, вы привыкли добавлять эти новые элементы управления программно в код. Используя ASP.NET MVC, вам лучше сделать это с помощью javascript.

Должно быть тривиально написать функцию javascript, которая добавляет FirstName1, FirstName2, FirstName3 и т. Д. В Контроллере проверьте Request.Form.AllKeys, чтобы определить, сколько полей было добавлено пользователем.

Вы также можете перебирать число в скрытом поле под названием «txtNumFields», а затем использовать его в качестве контрольного значения в цикле:

int numFields = int.Parse(Request.Form["txtNumFields"]); 
for (i==0;i<numFields ;i++) 
{ 
    string firstName = Request.Form["FirstName" + i.ToString()]; 
    ... 
} 
+0

Спасибо, Дэйв, я пробовал этот подход, но Request.Form.AllKeys всегда 0. Он не показывает какой-либо элемент управления, который я добавил с помощью javascript. Любая помощь? –

+0

Проблема в том, что Request.Form.AllKeys.Count всегда равен 0. Поэтому я не могу получить доступ к любому элементу моего контроллера. –

+0

Установили ли вы идентификатор для каждого поля формы? Вам также необходимо убедиться, что кнопка имеет тип = submit, и Action должен иметь возможность принимать POST (украсить метод Action с помощью [HttpPost] –

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