2016-01-27 2 views
0

Я пытаюсь передать данные Json из представления в контроллер, но по какой-то причине он не хочет работать. Когда я отлаживаю контроллер, моя модель показывает как нулевую, а для меня жизнь я не могу понять, почему.Передача модели с точки зрения на vontroller через Jquery ajax

Вот мой контроллер:

 public JsonResult UpdateVideoUrl(List<GetUrlData> model) 
    { 
     //var UpdateUrls = new AppServices.Video.UpdateAllVideo(); 
     //var loginVideoUrl = model.ToString(); 
     //dynamic update = UpdateUrls.Execute(model); 
     return Json(model); 
    } 

Мой Вид:

$('#btnUpdate').click(function (e) { 
    //debugger; 
    var model = { 
     'Model.LoginFiles.EnglishVideoURL': $("#LoginEnVideoInput").val(), 
     'Model.LoginFiles.SpanishVideoURL': $("#LoginEsVideoInput").val(), 
     'Model.WelcomeFiles.EnglishVideoURL': $("#WelcomeEnVideoInput").val(), 
     'Model.WelcomeFiles.SpanishVideoURL': $("#WelcomeEsVideoInput").val(), 
     'Model.BenefitFiles.EnglishVideoURL': $("#BenefitEnVideoInput").val(), 
     'Model.BenefitFiles.EnglishVideoURL': $("#BenefitEsVideoInput").val(), 
     'Model.MyEnrollmentFiles.EnglishVideoURL': $("#MyEnrollmentEnVideoInput").val(), 
     'Model.MyEnrollmentFiles.EnglishVideoURL': $("#MyEnrollmentEsVideoInput").val(), 
     'Model.AdminSideFiles.EnglishVideoURL': $("#AdminSideEnVideoInput").val(), 
     'Model.AdminSideFiles.EnglishVideoURL': $("#AdminSideEsVideoInput").val() 
    } 
    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("UpdateVideoUrl", "ManageVideos")', 
     data: JSON.stringify(model), 
     contentType: 'application/json; charset=utf-8', 
     //async: true, 
     success: function (model) { 
      //Return the model 
     }, 
     error: function (jqXHR, errorThrown, errorThrown) { 
      console.log("there was an error on post: " + " " + errorThrown + "." + " Please see above if applicable"); 
     } 
    }); 
}); 

И моя модель:

public class ApplicationVideoModel 
{ 
    public List<GetUrlData> GetUrlData { get; set; } 
} 

public class GetUrlData 
{ 
    public GetUrlData(string englishurl, string spanishurl) 
    { 
     EnglishVideoUrl = englishurl; 
     SpanishVideoUrl = spanishurl; 
    } 
    public string EnglishVideoUrl 
    { 
     get; 
     set; 
    } 
    public string SpanishVideoUrl 
    { 
     get; 
     set; 
    } 
} 

Что я с видом здесь?

ответ

0

Модель приходит null, потому что вы конвертируете один объект и не список объектов.

Если вы измените параметр в методе пост в:

public JsonResult UpdateVideoUrl(GetUrlData model) 
{ 
    return Json(model); 
} 

, то модель не будет нулевым.

Если вам необходимо отправить список в качестве параметра, то вы должны stringify массив объектов, как это:

var model = [{ 
    'Model.LoginFiles.EnglishVideoURL': $("#LoginEnVideoInput").val(), 
    next properties 
      }, 
      { 
    second object 
      }] 
+0

Да, это была проблема. Благодарю. –

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