如何将带有数组列表的$(“form”).serialize()从AJAX方法传递到mvc控制器
how to pass $("form").serialize() with array list from AJAX method to mvc controller?
我必须将模型和另一个数组列表值从javascript传递给控制器。
Javascript代码
$("#SaveData").click(function (e) {
debugger
var formdata = $("form").serialize();
var list = new Array();
var postData;
$('input.chkevent').each(function () {
debugger
if (this.checked == true) {
var parent_id = this.parentElement;
var par2 = parent_id.previousElementSibling;
var par3 = par2.previousElementSibling;
var child = par3.childNodes[0];
var child_val = child.defaultValue;
var arr_date = this.parentElement.nextElementSibling.childNodes[0].value;
var dep_date = this.parentElement.nextElementSibling.nextElementSibling.childNodes[0].value;
var id = new Array(); ;
id.push(child_val, arr_date, dep_date);
list.push(id);
postData = {values: list };
}
});
$.ajax({
type: "POST",
url: "/umbraco/Surface/HomeSurface/FormData",
data: (formdata ? formdata + "&" : "") + "values=" + postData,
traditional: true,
success: function (data) {
//alert("ajax request to server succeed");
}
});
});
我只得到了一种数据,postData
或formdata
,但我需要它们都通过控制器方法,如下所示:
public ActionResult FormData(PERSON_MASTER person, string[] values)
{}
PERSON_MASTER.cs
public class PERSON_MASTER
{
[Key]
public int PERSON_ID { get; set; }
public string ICARD_ID { get; set; }
[Required]
public string FNAME { get; set; }
[Required]
public string LNAME { get; set; }
public string GENDER { get; set; }
[DataType(DataType.Date)]
public DateTime DOB { get; set; }
[Required]
public int? CITY_ID { get; set; }
public int? STATE_ID { get; set; }
[Required]
public int? COUNTRY_ID { get; set; }
public string CONTACT_NO { get; set; }
}
提前谢谢。
试试这个,没有测试:
var model = {
person: $("form").serialize(),
values: list
};
$.ajax({
type: "POST",
url: "/umbraco/Surface/HomeSurface/FormData",
data: JSON.stringify(model),
traditional: true,
success: function (data) {
//alert("ajax request to server succeed");
}
});
每当我将数据传递给控制器时,我都会确保参数名称与控制器中的参数名称一致:
$.ajax({
type: "POST",
url: "/umbraco/Surface/HomeSurface/FormData",
data: {
person: formdata,
values: list
},
traditional: true
});
更新:您还必须确保参数具有相同的形状。在代码中,您将多维数组传递给非多维数组
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 如何通过ajax刷新JSF填充的javascript变量
- 如何在php文件中获取$.post-ajax传递的值
- Replacing $ .ajax?
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- Ajax发布表单序列化,发布引号'
- 通过Ajax将JavaScript函数传递给PHP文件
- ajax请求的顺序总是不同的
- Jquery/Ajax.serialize()未完全工作
- Ajax: onload serialize() form
- 如何将带有数组列表的$(“form”).serialize()从AJAX方法传递到mvc控制器
- 如何使用 Ajax .serialize() 数据将表单发布到 PHP
- Ajax serialize() 方法没有读取 html 表单的所有数据字段
- Ajax serialize()不是发布表单数据
- 如何在表单Serialize()ajax中包含提交按钮名称和值
- 如果ajax中的条件对serialize()不起作用
- Jquery/Ajax$(var).serialize()未捕获错误:语法错误,无法识别的表达式:value
- 通过jquery ajax()和serialize()提交html表单
- jquery ajax send form.serialize, variable and array all as d
- 带有 ajax 和 jquery serialize() 的 POST 请求丢失了值