使用Ajax和Razor增加模型的价值

时间:2015-08-23 13:55:18

标签: c# jquery ajax asp.net-mvc razor

我使用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永远不会使用新值进行更新。

我的问题是:如何确保我始终使用最新值,而无需重新加载页面?

1 个答案:

答案 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获取后,更新跨度内的文本。