2017-01-17 2 views
0

Я пытаюсь передать данные JSON с помощью Ajax вызова на мой метод действия -Pass JSON Данные метода действия

Ajax call - 

$.ajax({ 
     type: "POST", 
     url: '/ProjectList/getProjects', 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     data: JSON.stringify(modelData), 
     success: function (data) { 
         alert("Testing"); 
     } 
     }); 

Модель -

EbitModel.cs 

public class EbitModel 
{ 
    public string ProgramName { get; set; } 
    public string ProjectName { get; set; } 
    public string SubprojectName { get; set; } 
} 

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

ProjectListController.cs 


    [HttpPost] 
    public ActionResult getProjects(List<EbitModel> modelData) 
    { 
     return null; 
    } 

Но я получаю null здесь в modelData в этом методе действий.

Что-нибудь я здесь не хватает?

Edit -

JSON данные в ModelData как -

[{"ProgramName":"South East","ProjectName":"XYZ","SubprojectName":"LMZ"},{"ProgramName":"South East","ProjectName":"ACB","SubprojectName":"LMZa"}] 
+0

что делает 'modelData' содержит? –

+0

@ DanielA.White .. содержит данные JSON .. E.G. [{"ProgramName": "South East", "ProjectName": "XYZ", "SubprojectName": "LMN .....] –

+0

Пожалуйста, покажите modelData, проблема, вероятно, в том, что у вас есть какие-либо ошибки в консоли? – mybirthname

ответ

0

Я нашел работу вокруг этого -

var modelData = { "modelData": dt }; 
$.ajax({ 
      type: "POST", 
      url: '/ProjectList/getProjectsFromEbit', 
      dataType: "html", 
      contentType: "application/json; charset=utf-8", 
      data: JSON.stringify(modelData), 
      success: function (data) { 

      }, 
      error: function (data) { 

        } 

       }); 

в контроллере - я взял эту строку и deserialised его

public ActionResult getProjectsFromEbit(string modelData) 
    { 
     var systemOutputList = new List<EbitModel>(); 
     systemOutputList = JsonConvert.DeserializeAnonymousType(modelData, systemOutputList); 
     return PartialView("_getProjects",systemOutputList); 
    } 
0

Создать переменную для хранения модели и передать эту переменную Аяксу данные

var modelHolder = { "Value": @Model.Value } 
$.ajax({ 
     type: "POST", 
     url: '/ProjectList/getProjects', 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     data: modelHolder, 
     success: function (data) { 
         alert("Testing"); 
     } 
     }); 
1

вы должны пройти modelData вдоль при этом Json переходит к контроллеру.
Пробуйте использовать следующий код.

var jsonString = [{"ProgramName":"South East","ProjectName":"XYZ","SubprojectName":"LMZ"},{"ProgramName":"South East","ProjectName":"ACB","SubprojectName":"LMZa"}]; 
var jsonData = JSON.parse('{"modelData":'+jsonString +'}') 

$.ajax({ 
    type: "POST", 
    url: '/ProjectList/getProjects', 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    data: jsonData, 
    success: function (data) { 
     alert("Testing"); 
    } 
}); 
+0

Не знаете, почему .., но я получаю внутреннюю ошибку сервера 500, когда i используя метод –

+0

@omkarpatade, вы получили данные в своем контроллере? –

+0

Нет. У меня есть точка останова в моем методе действий. Но запрос идет непосредственно к методу действий. Когда я проверяю консоль .. ее давая внутреннюю ошибку сервера 500 –

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