Asp.Net Mvc5表單提交之List集合
一、說明
1.Asp.Net Mvc中Action
的引數可以自動接收和反序列化form
表單的值,
2.對於name=value
型別,只要Action
引數的變數名和input
的name
相同就行,不區分大小寫
3.對於Model
型別的,只要Action
引數Model
的欄位名和input
的name
相同就行,不區分大小寫
4.對於List
型別,如下
二、List 基礎資料型別提交
Html程式碼
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-title"> List 基礎資料型別提交</div>
</div>
<div class="panel-body">
<form action="@Url.Action("TestOne")" method="post">
<div class="form-group">
<input name="name" value="張三" />
</div>
<div class="form-group">
<input name="name" value="李四" />
</div>
<input class="btn btn-success" type="submit" value="提交" />
</form>
</div>
</div>
Action
接收
public JsonResult TestOne(List<string> name)
{
return Json(name);
}
引數傳遞:
顯示結果:
三、List<Model>
型別提交json陣列
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-title"> List<Model> 資料型別提交(一)</div>
</div>
<div class="panel-body">
<form action="@Url.Action("TestTwo")" method="post">
<table>
<thead>
<tr>
<th>ID</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td><input name="ID" value="1" /></td>
<td><input name="Name" value="張三" /></td>
</tr>
<tr>
<td><input name="ID" value="2" /></td>
<td><input name="Name" value="李四" /></td>
</tr>
</tbody>
</table>
<input type="submit" class="btn btn-success" id="submit1" value="提交" />
</form>
</div>
</div>
使用Ajax提交
$('#submit1').click(function () {
var form = $(this).parents('form');
var result = [];
form.find('tbody tr').each(function () {
var thisItem = $(this);
result.push({
ID: thisItem.find("input:eq(0)").val(),
Name: thisItem.find('input:eq(1)').val()
})
});
$.post(form.attr('action'), {
stuList: result, //直接提交json陣列
}, function (data) {
alert(data);
});
return false;
});
後臺action接收處理
public JsonResult TestTwo(List<Student> stuList)
{
return Json(stuList);
}
引數傳遞:
四、List<Model>
型別提交之json陣列字串
HTML內容同上,
整合json陣列,以字串格式傳遞
$('#submit2').click(function () {
var form = $(this).parents('form');
var result = [];
var data = form.serializeArray();
for (var i = 0; i < data.length; i++) {
var item = data[i];
var stu_i = Math.floor(i / 2); //沒2(物件的屬性個數)個位一組,整合到一個物件中
if (!result[stu_i])
result[stu_i] = {}; //初始化陣列中的物件
result[stu_i][item['name']] = item['value'];
}
console.info(result);
$.post(form.attr('action'), {
stuList: JSON.stringify(result), //提交json字串,後臺自己反序列化
other: 'test'
}, function (data) {
alert(data);
});
return false;
});
action後臺引數接收處理
public JsonResult TestThree(string stuList, string other = "沒有內容")
{
//自己反序列化處理,更靈活處理
List<Student> list = JsonConvert.DeserializeObject<List<Student>>(stuList);
return Json(new { stu = list, other = other });
}
引數傳遞:
返回結果:
特別說明
提交的Json陣列整合方式1:從頁面dom中獲取
//處理方式1,從頁面獲取值
var result = [];
form.find('tbody tr').each(function () {
var thisItem = $(this);
result.push({
ID: thisItem.find("input:eq(0)").val(),
Name: thisItem.find('input:eq(1)').val()
})
});
整合方式2:從表單的序列化陣列中獲取
var result = [];
var data = form.serializeArray();
for (var i = 0; i < data.length; i++) {
var item = data[i];
var stu_i = Math.floor(i / 2); //沒2(物件的屬性個數)個位一組,整合到一個物件中
if (!result[stu_i])
result[stu_i] = {}; //初始化陣列中的物件
result[stu_i][item['name']] = item['value'];
}
console.info(result);
相關文章
- MVC5之表單集合資料自動繫結到物件屬性(集合)中MVC物件
- Spring 接收表單List集合資料Spring
- ASP.NET下的表單提交問題 (轉)ASP.NET
- **PHP分步表單提交思路(分頁表單提交)PHP
- 小白學集合之List介面
- php表單提交PHP
- javascript提交表單JavaScript
- Java集合(5)之 List 總結Java
- Python順序集合之 ListPython
- 集合框架學習之List介面框架
- 集合框架-List集合框架
- 集合框架-List集合-2框架
- 集合框架-List集合-3框架
- Spring 表單提交,後臺自動封裝有集合物件的物件Spring封裝物件
- ASP.NET MVC 第五個預覽版和表單提交場景ASP.NETMVC
- java集合-ListJava
- Java 集合 ListJava
- Ajax 提交表單資料
- js表單檔案提交JS
- ASP.NET MVC5 知識點整理ASP.NETMVC
- 4種方法讓SpringMVC接收多個物件 List 表單提交,以BeanListModel接收SpringMVC物件Bean
- List集合就這麼簡單【原始碼剖析】原始碼
- 輕鬆玩轉花樣表單表單提交(轉)
- PHP 防止表單重複提交PHP
- ajax提交表單包括檔案
- PHP表單提交方法彙總PHP
- java 表單避免重複提交?Java
- 泛型集合 list泛型
- List型別集合型別
- 關於ajax提交表單,重複提交解決方法
- js如何阻止表單提交簡單介紹JS
- ASP.NET MVC/Core表單提交後臺模型二級屬性驗證問題ASP.NETMVC模型
- C# Post 模擬表單提交C#
- spring mvc 表單提交 亂碼SpringMVC
- Js提交表單的兩種方法JS
- Html form 表單提交前驗證HTMLORM
- java遠端提交表單問題Java
- jFinal避免表單重複提交