Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
JFF_by
2 / 2 / 2
Регистрация: 16.09.2013
Сообщений: 42
1

Динамическое создание объектов в представлении

23.09.2014, 12:22. Просмотров 1783. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток. Возникла такая проблема:
Есть поля ввода, куда пользователь должен текст:
HTML5
1
2
3
4
5
6
7
8
9
10
11
            <li>
                @Html.LabelFor(m=>m.Title)<br />
                <div class="input-group">
                    <span class="input-group-addon">1</span>
                    @Html.TextBoxFor(m => m.Title, new { @class = "form-control", placeholder = "Chapter Title" })
                </div>
            </li>
            <li>
                @Html.LabelFor(m => m.Content)<br />
                @Html.TextAreaFor(m => m.Content, new { style = "width: 100%; height: 100px;" })
            </li>
Однако заранее неизвестно сколько таких полей понадобиться пользователю, поэтому создаём кнопку добавления новых полей и обрабатываем нажатия на неё:
Javascript
1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
    var i = 2; 
    $("#add_new_chapter").click(function () {
        $(document).find('ol').append('<li>@Html.LabelFor(m=>m.Title)<br />' +
            ' <div class="input-group">' +
            '<span class="input-group-addon">' + i++ + '</span>' +
            ' @Html.TextBoxFor(m => m.Title, new { @class = "form-control", placeholder = "Chapter Title" })' +
            ' </div></li><li> @Html.LabelFor(m => m.Content)<br />'
            + ' <textarea rows="5"  style = "width: 100%; name="Content" data-val="true" data-val-required="Поле Content не заполнено" id="Content"></textarea> </li>')
    });
</script>
Таким образом генерируются новые поля, всё работает замечательно.
Однако не получается в контроллере принимать данные от динамически сформированных полей ввода:
C#
1
public ActionResult CreateArticle(List<CaptersModel> capters )
При таком объявлении приходит null, а при таком:
C#
1
public ActionResult CreateArticle(CaptersModel capters,CaptersModel c )
приходят 2 одинаковых значения, были введены в первое, статически сформированное, поле.
Собственно как решить эту задачу ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2014, 12:22
Ответы с готовыми решениями:

Динамическое изменение значений в представлении
Добрый день, вечер, утро или другое время суток заставшее вас. ... Имеется следующий код на...

Динамическое добавление inout на представлении и обработка в контроллере
Ребят, вопрос такой: Допустим я добавляю новый продукт - есть определенная форма, но надо чтобы...

Добавление нескольких разных объектов в одном представлении
Добрый день, интересует следующее: Есть сущность &quot;Объявление&quot; которое содержит идентификатор...

Создание объекта в представлении
Всем доброго времени суток Столкнулся с такой проблемой. В представлении мне нужно из базы...

Динамическое создание контролов
Сама задачка в приложении к посту, чтобы было нагляднее. Постаралась решить задачу следующим...

2
IamRain
1422 / 1265 / 399
Регистрация: 02.08.2011
Сообщений: 3,752
23.09.2014, 13:22 2
Как вариант - Отправляйте строки - содержимое этих полей.
0
JFF_by
2 / 2 / 2
Регистрация: 16.09.2013
Сообщений: 42
23.09.2014, 14:10  [ТС] 3
как вариант получилось принимать по полям свойства объекта модели
C#
1
public ActionResult CreateArticle(ArticleWriteModel articles, List<string> CaptersTitle, List<string> Content)
как вариант можно доставать через Request.Form["CaptersTitle"].
В принципе этого должно пока хватать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2014, 14:10

Динамическое создание страниц
Здравствуйте. Скажите пожалуйста, как можно сделать динамическое добавление страниц, например из...

Динамическое создание контролов
Здравствуйте. Я начинающий программист. http://www.codemag.com/Article/0305101 Не могу выполнить...

Динамическое создание страниц
Здравствуйте. Просьба если что сильно не пинать и ткнуть носом где можно прочитать. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru