我设法从foreach内部检索动态元素ID并以这种方式将其发送到控制器:
@using (Html.BeginForm("DeleteConfirmed", "Gifts", FormMethod.Post, new { @class = "form-content", id = "formDiv" }))
{
foreach (var item in Model.productList)
{
<input type="button" value="Delete" onclick="DeleteButtonClicked(this)" data-assigned-id="@item.ID" />
}
}
以及相关脚本,指向控制器的ActionResult方法,负责删除项目:
function DeleteButtonClicked(elem) {
var itemID = $(elem).data('assigned-id');
if (confirm('sure?')) {
window.location.href = "/Gifts/DeleteConfirmed/" + itemID;
}}
现在,这正常,因为正确检索itemID。 由于我想在表单中添加@Html.AntiForgeryToken(),我的想法是将MVC控制器的Actionmethod更改为JsonResult,在脚本中添加一点Ajax,允许我传递itemID和token。
类似的东西:
function DeleteButtonClicked(elem) {
event.preventDefault();
var form = $('#formDiv');
var token = $('input[name="__RequestVerificationToken"]', form).val();
var itemID = $(elem).data('assigned-id');
if (confirm('sure?')) {
$.ajax({
type: 'POST',
datatype: 'json',
url: '@Url.Action("DeleteConfirmed", "Gifts")',
data: {
__RequestVerificationToken: token,
id: itemID
},
cache: false,
success: function (data) { window.location.href = "/Gifts/UserProfile?userID=" + data; },
error: function (data) { window.location.href = '@Url.Action("InternalServerError", "Error")'; }
});
}
dynamic }Some
但我不知道如何将{&#39; 添加到我用于识别的<input type="button" value="Delete" onclick="DeleteButtonClicked(this)" data-assigned-id="@item.ID" />
中的元素(this =&gt; elem) foreach循环中的项目,以便将其传递给脚本。
上面的剧本显然失败了,因为没有“&#39; event&#39; (如果这将是唯一的错误,我根本不确定)。
需要一些帮助。提前感谢您的时间和考虑。
答案 0 :(得分:1)
您要做的是使用jQuery创建事件处理程序:
for(i = 0; i < m; i++){
for(j = 0; j < m; j++){
scanf("%d",&(a[i][j]));
printf("%d",a[i][j]);
}
}
请确保在呈现按钮后呈现此脚本。最好使用$('input[type="button"]').on('click', function(event) {
event.preventDefault();
var form = $('#formDiv');
var token = $('input[name="__RequestVerificationToken"]', form).val();
var itemID = $(this).data('assigned-id');
if (confirm('sure?')) {
$.ajax({
type: 'POST',
datatype: 'json',
url: '@Url.Action("DeleteConfirmed", "Gifts")',
data: {
__RequestVerificationToken: token,
id: itemID
},
cache: false,
success: function (data) { window.location.href = "/Gifts/UserProfile?userID=" + data; },
error: function (data) { window.location.href = '@Url.Action("InternalServerError", "Error")'; }
});
}
});
技术。
答案 1 :(得分:0)
试试&#39; on&#39;事件处理程序附件(http://api.jquery.com/on/)。外部函数是DOM ready的简写。
$(function() {
$('.some-container').on('click', '.delete-btn', DeleteButtonClicked);
})