在我的ASP.NET MVC项目中,有一个表显示了用户查看file type
和Id
(隐藏)的信息。
每当用户选中复选框并单击Send Request Mail
按钮时,我希望获得选中行的ID,并将它们作为ID列表传递给控制器。
这是表视图
<tbody>
@foreach (var item in Model.ReqDocumentsViewModel.OrderByDescending(x => x.Id))
{ <tr class="even pointer">
<td style="display:none;">@item.Id</td>
<td>@item.FileType</td>
<td>@item.Note</td> @if (item.RequestStatus == false) { <td> Not Requested; </td> } else { <td> Requested; </td> } <td>
<input type="checkbox" value="@item.Id" id="chk" />
</td>
<td>
<button type="button" onclick="RemoveReqDocument()" class="btn btn-danger">Remove</button>
</td>
</tr>
}
</tbody>
<button type="button" class="btn btn-primary sm" onclick="SendMailNotification();">Send Request Mail</button>
我试过了。
function SendMailNotification() {
const selectedRows = [...$('table tbody tr:has("input:checked")')]
.map(tr => [...$(tr).find('td:lt(1)')]
.reduce((res, td) => (res[$(td).attr('prop')] = $(td).text(), res), {}))
console.log(selectedRows)
var newOrders = $.map(selectedRows, function (element) {
var obj = {};
for (var key in element) {
obj.Id = key;
}
return obj;
});
$.ajax({
type: "POST",
url: "/Task/RequestDocument",
data: JSON.stringify(newOrders),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
if (r == false) {
alert("You have to enter Order Qty first");
} else {
alert("Order Created");
location.reload();
}
}
});
}
在控制器中
public JsonResult RequestDocument(List < ReqDocList > idQs)
{
}
型号
public class ReqDocList
{
public int Id { get; set; }
}
1条答案
按热度按时间ccrfmcuu1#
我想获取选中行的ID,并将它们作为ID列表传递给控制器。
下面是一个工作演示,大家可以参考一下。
请求文档列表VM:
任务控制器:
索引视图:
结果: