【发布时间】:2019-08-08 13:54:09
【问题描述】:
作为 AJAX 新手,我遇到了这个问题,但没有解决它。我希望在 ajax 帖子审查对象后刷新我的表,我尝试过的一切都是徒劳的。
假设 ajax 响应是 JSON 结果,以避免发布我的OnPost() 代码。
我使用 ajax 发送产品的 Id,然后使用该 Id 删除产品
然后我调用OnGet() 用来填充返回更新列表的表的相同方法。在 chrome 调试工具中,我看到响应成功返回更新列表。我只是不知道如何把它传回我的名单。提前谢谢各位。
@Html.AntiForgeryToken()
<table id="shoppingBag" class="table">
<thead>
<tr>
<th scope="col">Item</th>
<th scope="col">Price</th>
<th scope="col">Quantity</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.ShoppingBagItems)
{
<tr>
<td>
@item.Product.Name
</td>
<td>
@item.Price.ToString("C")
</td>
<td>
<input value="@item.Quantity" size="1" maxlength="1" class="text-center" />
</td>
<td>
<button onclick="remove(@item.Product.Id.ToString())" class="close">
<span aria-hidden="true">×</span>
</button>
</td>
</tr>
}
</tbody>
</table>
<script>
function remove(id) {
$.ajax({
type: 'POST',
url: 'ShoppingBag?handler=Delete',
headers: {
"XSRF-TOKEN": $('input:hidden[name="__RequestVerificationToken"]').val()
},
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: ''+id+'',
sucess: function (response) {
append_json(response);
}
});
}
function append_json(data){
var table = document.getElementById('shoppingBag');
data.forEach(function(object) {
var tr = document.createElement('tr');
tr.innerHTML = '<td>' +
object.product.name +
'</td>' +
'<td>' +
object.price +
'</td>' +
'<td>' +
object.quantity +
'</td>';
table.appendChild(tr);
});
}
</script>
【问题讨论】:
标签: javascript html ajax asp.net-core-mvc razor-pages