我正在尝试将Json数据从视图传递到控制器但由于某种原因它不想工作。当我调试控制器时,我的模型显示为null,对于我的生活,我无法弄清楚为什么。
这是我的控制器:
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 :(得分:0)
模型为空,因为您转换一个对象而不是对象列表。
如果您将post方法中的参数更改为:
public JsonResult UpdateVideoUrl(GetUrlData model)
{
return Json(model);
}
然后模型不会为空。
如果你需要发送List作为参数,那么你必须按字母顺序化对象数组:
var model = [{
'Model.LoginFiles.EnglishVideoURL': $("#LoginEnVideoInput").val(),
next properties
},
{
second object
}]