03.05.2017, 15:18
|
Аспирант
|
|
Регистрация: 11.12.2016
Сообщений: 47
|
|
laimas,
у меня работала отправка формы, когда я делал так:
Html.EditorFor(model=>model.detail[0].details_name)
Html.EditorFor(model=>model.detail[0].details_value)
но Razor нельзя добавлять динамически
|
|
03.05.2017, 15:21
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Я не знаю ASP .NET на таком уровне, чтобы оказывать какую либо существенную помощь кому либо. И к JS это не имеет отношения, нужно было размещать тему в другом разделе, вполне возможно что кто-то и занимается им серьезно.
Последний раз редактировалось laimas, 03.05.2017 в 15:25.
|
|
03.05.2017, 15:24
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Scantraxx
|
у меня работала отправка формы, когда я делал так
|
Попробуйте так именовать поля характеристик:
<input class="copy-input" type="text" name="details_name[]" />
<input class="copy-input" type="text" name="details_value[]" />
|
|
03.05.2017, 15:36
|
Аспирант
|
|
Регистрация: 11.12.2016
Сообщений: 47
|
|
Сообщение от laimas
|
Попробуйте так именовать поля характеристик:
|
не помогло я вот пробую просто без добавления новых полей отправить форму, а все равно null. Спасибо за внимание, буду копаться
|
|
03.05.2017, 15:45
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Scantraxx
|
не помогло
|
Ожидаемо. На клиенте собственно фиолетово как поля дразнятся, в том же JS это просто набор элементов формы. А вот как получает их сервер, тут уже не все однозначно.
if (model.detail != null) {
foreach (var details in model.detail)
чем в данном случае является model.detail? Это должна быть коллекция элементов именно с именем details_name (при этом где details_value?).
|
|
03.05.2017, 15:56
|
Аспирант
|
|
Регистрация: 11.12.2016
Сообщений: 47
|
|
laimas,
у меня есть общая модель для таблиц Товара, Характеристик и Изображения. model.detail это я так обращаюсь к модели details.
То есть мне на сервер приходит общая модель, содержащая в себе модель Товара(название, категория, бренд и т.д.), модель Характеристик(коллекция {название+значение}) и Изображение(хранится в двоичных данных). После того как эта модель пришла, я по очереди "вытягиваю" из нее эти три модели и добавляю в бд.
Последний раз редактировалось Scantraxx, 03.05.2017 в 16:00.
|
|
03.05.2017, 15:59
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
И что возвращает модель? Проверить то это можно. Вы ведь пытаетесь обойти объект model.detail циклом чтобы получить его элементы. Так что вы получаете?
|
|
03.05.2017, 16:07
|
Аспирант
|
|
Регистрация: 11.12.2016
Сообщений: 47
|
|
laimas,
да можно, я прикреплял в каком-то посте скрин. Там null. part приходит нормально, image я не загружаю, а вот detail не хочет и все =/
|
|
03.05.2017, 16:17
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Scantraxx
|
part приходит нормально
|
Я не о приходе говорю, а о объекте на клиенте и о коде отправки формы спрашивал, а не о об обработчике ее на сервере. Вы же об Ajax отправке речь вели, форма ваша асинхронно у вас отравляется?
Последний раз редактировалось laimas, 03.05.2017 в 16:19.
|
|
03.05.2017, 16:21
|
Аспирант
|
|
Регистрация: 11.12.2016
Сообщений: 47
|
|
laimas,
пока без Ajax
<script>
var $myForm=$("#myForm");
$(".plus").off("click").on("click",function(){
$(".details").append('<div class="details-part"><input class="details_name" type="text" /><input class="details_value" type="text" /></div>')
});
$("#save-form").off("click").on("click",function(){
var detailList=[];
$myForm.find(".details-part").each(function(){
detailList.push({
details_value:$(this).find(".details_value").val(),
details_name:$(this).find(".details_name").val()
})
});
$myForm.find('[name="details"]').val(JSON.stringify(detailList))
$myForm.submit()
});
</script>
|
|
|
|