我发送名称,这是一个字符串,表数据是一个二维数组我在控制器中得到的名称很好,但我似乎无法得到tableData.
这就是我创建表数据的方式
资料表
var tableData = new Array();
$('table tbody tr').each(function () {
var tableRow = new Array();
tableRow.push({ 'id: $(this).data('id') });
tableRow.push({ 'item': $(this).data('item') });
tableData.push(tableRow);
});
Run Code Online (Sandbox Code Playgroud)
JavaScript的
var data = { Name: name, TableData: tableData };
$.ajax({
type: 'POST',
url: url,
data: data
});
Run Code Online (Sandbox Code Playgroud)
调节器
[HttpPost]
public void Add(string Name, string[][] TableData)
{
// Stuff
}
Run Code Online (Sandbox Code Playgroud)
与ASP.NET MVC应用程序一样,您可以从定义将反映到视图逻辑的视图模型开始:
public class MyViewModel
{
public string Name { get; set; }
public Ilist<MyViewModelItem> TableData { get; set; }
}
public class MyViewModelItem
{
public string Id { get; set; }
public string Item { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后修复您在客户端上构建数据的方式:
var tableData = [];
$('table tbody tr').each(function () {
tableData.push({
id: $(this).data('id'),
item: $(this).data('item')
});
});
Run Code Online (Sandbox Code Playgroud)
然后将此信息发送到控制器的方式(将其作为JSON有效负载发送,以确保只要您的视图模型遵循正确的格式,复杂对象将在服务器上正确绑定):
$.ajax({
type: 'POST',
url: url,
data: JSON.stringify({ name: name, tableData: tableData }),
contentType: 'application/json'
});
Run Code Online (Sandbox Code Playgroud)
最后一块拼图 - 控制器动作的签名:
[HttpPost]
public void Add(MyViewModel model)
{
// Stuff
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
932 次 |
| 最近记录: |