通过jQuery ajax函数将javaScript数组和表单一起传递
我正在使用ASP.NET MVC5应用程序。我有一个JavaScript数组“selectElementList”,它包含多个数据,我正试图使用AJAX JQuery函数将数据和表单值一起发回。在控制器中,我获取窗体值,但获取数组的空值。。。我相信我在视野方面遗漏了一些东西 JavaScript全局数组 JavaScript添加和确认函数 控制器方法通过jQuery ajax函数将javaScript数组和表单一起传递,javascript,jquery,asp.net-mvc,json,razor,Javascript,Jquery,Asp.net Mvc,Json,Razor,我正在使用ASP.NET MVC5应用程序。我有一个JavaScript数组“selectElementList”,它包含多个数据,我正试图使用AJAX JQuery函数将数据和表单值一起发回。在控制器中,我获取窗体值,但获取数组的空值。。。我相信我在视野方面遗漏了一些东西 JavaScript全局数组 JavaScript添加和确认函数 控制器方法 我找到了解决方案,首先我创建了变量映射类,我希望传递给控制器 public class QualificationElementComponen
我找到了解决方案,首先我创建了变量映射类,我希望传递给控制器
public class QualificationElementComponents_ViewModel
{
public int ElementIndex { get; set; }
public string ElementMarkingSchemeTitle { get; set; }
public int ElementAvailableMark { get; set; }
public int ElementPassMark { get; set; }
public int ElementMeritMark { get; set; }
public int ElementDistinctionMark { get; set; }
public IList<ElementComponent> _ElementComponent { get; set; }
}
需要确保JavaScript数组和模型类中的变量名相同。。。。i、 e.要素清单
$("#ElementTable").on("click", ".k1-grid-confirm", function () {
var E_RecordId = $(this).data("id");
var E_MarkingSchemeTitle = $("#" + E_RecordId + "_EMST").val();
var E_AvailableMark = $("#" + E_RecordId + "_AM").val();
var E_PassMark = $("#" + E_RecordId + "_PM").val();
var E_MeritMark = $("#" + E_RecordId + "_MM").val();
var E_DistinctionMark = $("#" + E_RecordId + "_DM").val();
//add data to array//
selectElementList.push({ ElementIndex: E_RecordId, ElementMarkingSchemeTitle: E_MarkingSchemeTitle, ElementAvailableMark: E_AvailableMark, ElementPassMark: E_PassMark, ElementMeritMark: E_MeritMark, ElementDistinctionMark: E_DistinctionMark });
for (var i = 0; i <= selectElementList.length - 1; i++) {
alert(selectElementList[i].ElementIndex + " " + selectElementList[i].ElementMarkingSchemeTitle + " " + selectElementList[i].ElementAvailableMark + " " + selectElementList[i].ElementPassMark + " " + selectElementList[i].ElementMeritMark + " " + selectElementList[i].ElementDistinctionMark);
}
});
//QualificationElementsAndComponents ???????
function submit_createNewQualification()
{
//alert(JSON.stringify($("#NewQualificationForm").serializeObject()));
$.ajax({
type: "Post",
url: "/Qualification/CreateNewQualification",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ QualificationElementsAndComponents: selectElementList, newQualificationData: $("#NewQualificationForm").serializeObject() }),
success: function (data) {
if (data == true) {
window.location = "/Qualification/QualificationHome";
}
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
}
[HttpPost]
public ActionResult CreateNewQualification(QualificationViewModel newQualificationData, int [] QualificationElementsAndComponents)
{
public class QualificationElementComponents_ViewModel
{
public int ElementIndex { get; set; }
public string ElementMarkingSchemeTitle { get; set; }
public int ElementAvailableMark { get; set; }
public int ElementPassMark { get; set; }
public int ElementMeritMark { get; set; }
public int ElementDistinctionMark { get; set; }
public IList<ElementComponent> _ElementComponent { get; set; }
}
public ActionResult CreateNewQualification(QualificationViewModel newQualificationData, IList<QualificationElementComponents_ViewModel> ElementComponentList)
{
.......
$.ajax({
type: "Post",
url: "/Qualification/CreateNewQualification",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ElementComponentList:selectElementList, newQualificationData: $("#NewQualificationForm").serializeObject() }),
success: function (data) {
if (data == true) {
window.location = "/Qualification/QualificationHome";
}
},
error: function (jqXHR, textStatus, errorThrown) {
}
});
});