我使用Razor循环浏览我的模型上的一个集合来显示它。举个例子:
@foreach(var item in myCollection)
{
<span id='item-@item.Id'>@item.Quantity</span>
<button type='button' onclick='updateQuantity(@item.Quantity+1);'>Add One</button>
}
在此示例中,updateQuantity
执行AJAX请求,获取新数量,并使用新数量更新item-@item.Id
。但是,由于@item.Quantity
是从模型中提取的(通过页面的GET
方法传入,因此在重新加载页面之前,@item.Quantity
永远不会使用新值进行更新。
我的问题是:如何确保我始终使用最新值,而无需重新加载页面?
答案 0 :(得分:1)
更改foreach循环内的按钮,如下所示:
@foreach(var item in myCollection)
{
<span id='item-@item.Id'>@item.Quantity</span>
<button id='updateButton' type='button'>Add One</button>
}
然后,将此脚本添加到您的视图中:
<script>
$("#updateButton").click(function() {
var quantity = $("#item-@item.Id").text();
updateQuantity(quantity);
})
</script>
并且,在updateQuantity()
函数中,通过Ajax获取后,更新跨度内的文本。