chaturvedi_anshumaan_20191 Ответов: 0

Как привязать данные 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.");
           }
       });


Где я ошибаюсь? Я озадачен тем, как одни и те же две переменные в разных ситуациях не являются обязательными..

Что я уже пробовал:

Погуглил образцы, но это не помогает.

0 Ответов