这是一个将行数据传递给处理程序的演示:
型号:
public class Test
{
public int Id { get; set; }
public string Name { get; set; }
}
cshtml:
@Html.AntiForgeryToken()
<select id="ddlGroup">
<option>Choose Id</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<table id="taskDt">
<thead>
<tr>
<td>Id</td>
<td>Name</td>
<td>Action</td>
</tr>
</thead>
<tbody></tbody>
</table>
js:
var table;
function LoadData() {
table = $("#taskDt").DataTable({
"ajax": {
url: '?handler=GET',
type: 'GET',
processing: true,
serverSide: true,
},
"columns": [
{ "data": "id", "width": "50%" },
{ "data": "name", "width": "50%" },
{
render: function (data) {
return `
<button type="button" onclick=getData(this) class="btn btn-primary">
Edit Staff
</button>
`;
}
},
],
paging: true,
responsive: true,
searching: true,
ordering: true,
order: [[1, "asc"]]
});
}
function getData(t) {
var data = table.row($(t).parents('tr')).data();
console.log(data);
$.ajax({
type: "POST",
url: '?handler=ChangeData',
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
data: data,
success: function (data) {
},
error: function (result) {
alert("fail");
}
})
}
$(document).ready(function () {
LoadData();
})
然后就可以用public void OnPostChangeData(Test t)获取handler中的行数据了