2017-01-10 2 views
0

Я пытаюсь передать коллекцию в объект JSON в действие MVC. почти я пытался все решения, предоставляемые на Google, он не передает данные к действию, пожалуйста, дайте мне знать, что я не хватает:Передача JSON в ASP.Net MVC Действие

AJAX запрос

var data = []; 
var questID = 100; 
data.push({ QuestionTypeId: '2', QuestionId: questID, Answer: 'asdff' }); 
data.push({ QuestionTypeId: '2', QuestionId: questID, Answer: 'asdff' }); 
data.push({ QuestionTypeId: '2', QuestionId: questID, Answer: 'asdff' }); 
data.push({ QuestionTypeId: '2', QuestionId: questID, Answer: 'asdff' }); 

//var items = JSON.stringify(data); 
//alert(items); 
var items = JSON.stringify({ 'items': data }); 
alert(items); 

$.ajax({ 
url: '/Dashboard/CreateAssessment', 
data: items, 
type: 'POST', 
contentType: "application/json; charset=utf-8", 
dataType: 'json', 
traditional: true, 
success: function (response) { 
if (response.success) { 
    swal('Password Changed', response.Message, 'success'); 
         window.location.href = "/Account/Management"; 
        } else { 
         $("update-password").removeAttr("disabled"); 
         swal('Error', response.Message, 'error'); 
        } 
       }, 
       error: function (response) { 
        $("update-password").removeAttr("disabled"); 
       } 
      }); 

Модель класса

public class AssessmentQuestion 
{ 
    public int Id { get; set; } 
    public string Description { get; set; } 
    public int DisplayOrder { get; set; } 
    public string PreviousYearValue { get; set; } 
    public QuestionType QuestionType { get; set; } 
} 

Метод действия контроллера

// POST: /Dashboard/CreateAssessment 
[HttpPost] 
public JsonResult CreateAssessment(List<AssessmentAnswerModel> items) 
{ 
     var text = items; 
     return Json(new { success = true }); 
     // return null; 
     //return RedirectToAction("Thanks", "Account"); 
} 
+0

Измените строку 'var items = JSON.stringify ({'items': data});' to 'var items = JSON.stringify (data);' и он должен работать. –

ответ

1

Проверьте код неисправности с указанием линии ошибки.

var data = []; 
var questID = 100; 
data.push({ QuestionTypeId: '2', QuestionId: questID, Answer: 'asdff' }); 
data.push({ QuestionTypeId: '2', QuestionId: questID, Answer: 'asdff' }); 
data.push({ QuestionTypeId: '2', QuestionId: questID, Answer: 'asdff' }); 
data.push({ QuestionTypeId: '2', QuestionId: questID, Answer: 'asdff' }); 

//var items = JSON.stringify(data); 
//alert(items); 


var items = JSON.stringify(data); // HERE IS THE ERROR 

alert(items); 

$.ajax({ 
url: '/Dashboard/CreateAssessment', 
data: items, 
type: 'POST', 
contentType: "application/json; charset=utf-8", 
dataType: 'json', 
traditional: true, 
success: function (response) { 
if (response.success) { 
    swal('Password Changed', response.Message, 'success'); 
         window.location.href = "/Account/Management"; 
        } else { 
         $("update-password").removeAttr("disabled"); 
         swal('Error', response.Message, 'error'); 
        } 
       }, 
       error: function (response) { 
        $("update-password").removeAttr("disabled"); 
       } 
      }); 

Пожалуйста, перепроверьте AssessmentAnswerModel с чувствительно к регистру рассмотрение

Пожалуйста, отметьте, как ответ, если оказавшиеся полезными.

+0

Спасибо - я уже пробовал элементы var = JSON.stringify (data); Я использовал это раньше, а затем прокомментировал. В идеале это должно быть так. Но в контроллере public JsonResult CreateAssessment (List ) он получает 0. Нет данных – user1109270

0

В контроллере необходимо выбрать данные в виде массива, например

// POST: /Dashboard/CreateAssessment 
[HttpPost] 
public ActionResult CreateAssessment(AssessmentAnswerModel[] items) 
{ 
    var text = items; 
    return Json(new { success = true }); 

} 

Я не знаю, почему это происходит, как это, но это работало как то, что я сделал.

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

  • Нет связанных вопросов^_^