Как привязать данные list<char> из javascript и ajax к методу действия контроллера
вот что происходит : у меня есть два метода в контроллерах (ASP.NET MVC). Одна функция заключается в обновлении, а другая-в добавлении вопросников. Теперь вот JavaScript и HTML-код для получения и привязки данных к сохраненному методу действия контроллера.
function updateQuestionnaire() { var questions = new Array(); for (var i = 0; i < rowIds.length; i++) { debugger; var row = $(this); var question = {}; debugger; var selectElement = document.querySelector('#answerType-' + rowIds[i]); var output = selectElement.options[selectElement.selectedIndex].value; //code restored question.SelectedAnswerType = output; question.AnswerType = output; question.CreModUser = @Session["UserId"]; questions.push(question); } $.ajax({ type: "POST", url: "/ChurnFB/UpdateQuestionnarie", data: JSON.stringify(questions), contentType: "application/json; charset=utf-8", dataType: "json", success: function (r) { alert(r + " record(s) inserted."); } }); }
а вот и HTML часть:
&низкотемпературный;
@foreach (элемент var в модели)
{
<td>
@Html.DropDownList("ответ", новый список выбора(ViewBag.Типы ответов, @item.SelectedAnswerType), "выбрать любой", новый { идентификатор = "answerType-"+@товар.RowId+"", style = "max-width:100px;" })
Чтобы упростить задачу, я выделил проблемную переменную жирным шрифтом. Элемент AnswerType представляет собой список типа char.
Когда я нажимаю на кнопку Обновить в методе действия контроллера, я получаю список, который позже преобразую в DataTable. Дело в том, что когда я использую функцию вставки:ниже Для справки) Количество типов ответов не равно нулю. Но в обновлении появляется тот же счетчик переменных, что и (который позже терпит неудачу в моей хранимой процедуре, которую я использую в методе действия.).
function saveAllQuestions() { var questions = new Array(); var counter = 0; $("#tblQuestion TBODY TR").each(function () { var row = $(this); var question = {}; debugger; var selectElement = document.querySelector('#ddlAnswerType' + counter); var output = selectElement.options[selectElement.selectedIndex].value; question.SelectedAnswerType = output; question.CreModUser = @Session["UserId"]; questions.push(question); counter++; }); //Send the JSON array to Controller using AJAX. $.ajax({ type: "POST", url: "/ChurnFB/InsertQuestionnarie", data: JSON.stringify(questions), contentType: "application/json; charset=utf-8", dataType: "json", success: function (r) { alert(r + " record(s) inserted."); } });
Где я ошибаюсь? Я озадачен тем, как одни и те же две переменные в разных ситуациях не являются обязательными..
Что я уже пробовал:
Погуглил образцы, но это не помогает.