提交html-Asp.Net Mvc表单提交(批量提交)

Asp.Net Mvc中Action的参数可以手动接收并反序列化form表单的值,

通过表格提交

name=value类型,只要Action参数的变量名与输入的名称相同即可

html代码:


            

复制

C# 代码

public JsonResult Test(string name)
{
    return Json(name);
}

复制

对于Model类型,只要Action参数Model的数组名与输入的名称相同即可,html如下:


            

复制

C#代码需要做相应的修改:

public class Person
{
  public string name;
  public string sex;
} 
public JsonResult Test(Person person) 
{ 
//相关代码
}

复制

使用ajax提交

构造对象,对象数组与Action参数变量名相同或者与接收参数定义Model类型相同。

HTML和C#代码如上,js代码修改

var person ={
name = 获取表单的name值;
sex = 获取表单的sex值;

复制

以上描述针对单值提交和单模型提交。 它比较容易理解和使用。 对于List类型提交html,很多时候你都不知道哪里出了问题。 当然,这是一个笨办法,可以用js代码写一个循环,逐个提交。

如果数据量较小,这种方法是可以接受的。 如果插入大量数据,这种方式对前后台的性能影响很大。 下面介绍一下批量提交:

List类型的html代码如下:


            

复制

C#代码如下

public JsonResult Test(List name)
{
//自己代码
}

复制

对于列表类型,解决方法如下:html代码如下:


            

复制

js代码如下:

var postArr = [];
var arr = new Array(2);
for (var i = 0; i < arr.length; i++) {
let postData = {
"name":$("#name"+i),
"sex": $("#sex"+i)
postArr.push(postData);
}
 $.ajax({
            url: ../control名字/Test,
            data: {personList:postArr},//这个地方请注意!!!参数和C#代码保持一致
            type: options.type,
            dataType: options.dataType,
            success: function (data) {
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
            },
            beforeSend: function () {
            },
            complete: function () {
            }
        });

复制

C#代码如下:

public JsonResult Test(List personList)
{
    //自己代码
}

复制

当然还有另外一种办法,就做个变通的办法提交html,将json字段对象转成json字符串HTML内容与上面一样,把js代码改成如下:

var postArr = [];
var arr = new Array(2);
for (var i = 0; i < arr.length; i++) {
let postData = {
"name":$("#name"+i),
"sex": $("#sex"+i)
postArr.push(postData);
}
 $.ajax({
            url: "../control名字/Test?other"=其他值,
            data: {personList:JSON.stringify(postArr)},//这个地方请注意!!!参数和C#代码保持一致
            type: options.type,
            dataType: options.dataType,
            success: function (data) {
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
            },
            beforeSend: function () {
            },
            complete: function () {
            }
        });

复制

C#代码如下:

public JsonResult Test(string personList, string other = 其他值)
{
    //反序列化处理
    List list = JsonConvert.DeserializeObject<List>(personList);
    //其他逻辑
}

复制