C# 使用jquery和Ajax刷新DIV中的Partialview
这是我的部分观点:C# 使用jquery和Ajax刷新DIV中的Partialview,c#,javascript,jquery,asp.net-mvc,asp.net-mvc-4,C#,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 4,这是我的部分观点: @model UADDPortal.ViewModels.DatabaseInfoViewModel <table class="table table-bordered table-striped"> <tr> <td><h5> Status: @Model.CurrentStatus </h5> </td> <td><input type="submit" cla
@model UADDPortal.ViewModels.DatabaseInfoViewModel
<table class="table table-bordered table-striped">
<tr>
<td><h5> Status: @Model.CurrentStatus </h5> </td>
<td><input type="submit" class="btn btn-success" name="RefreshResourceStatus@(Model.CheckoutID)" id="RefreshResourceStatus@(Model.CheckoutID)" value="Refresh" /></td>
</tr>
问题是,在DIV部分生成的刷新按钮似乎是随机工作的……有时工作……大多数时间都不起任何作用……我不明白为什么……如果您有多个项目,最好使用
数据-*
属性来填充签出ID
@model UADDPortal.ViewModels.DatabaseInfoViewModel
<table class="table table-bordered table-striped">
<tr>
<td><h5> Status: @Model.CurrentStatus </h5> </td>
<td><input type="submit" class="btn btn-success btn-checkout"
data-chekout-id="@(Model.CheckoutID)" value="Refresh" /></td>
</tr>
正如联邦快递在对他的问题的评论中提到的那样
$.ajaxSetup({ cache: false });
为我解决了这个问题。确保内容没有被缓存。您有多个项吗?我通过将此项添加到jscript函数中解决了“仅工作一次”的问题:$.ajaxSetup({cache:false});穆拉里:是的……这个div是在foreach循环中生成的……你可以有N个div部分,每个部分都有自己的jscript函数。。。。。。。。。我修复了$.ajaxSetup({cache:false})的缓存问题;,但我仍然有一种奇怪的行为。。。。第一次单击按钮将正确加载…第二次单击将刷新整个页面(不知道为什么)…第三次单击将正确加载…第四次单击将刷新所有内容…依此类推…您可以使用
$.post()
加载它,这样它就不会被缓存。您还可以将checkoutid移动到data-*
属性并保持代码简单。检查我的答案。
@model UADDPortal.ViewModels.DatabaseInfoViewModel
<table class="table table-bordered table-striped">
<tr>
<td><h5> Status: @Model.CurrentStatus </h5> </td>
<td><input type="submit" class="btn btn-success btn-checkout"
data-chekout-id="@(Model.CheckoutID)" value="Refresh" /></td>
</tr>
$(document).ready(function () {
$('.btn-checkout').click(function(e){
var checkoutId=$(this).data("chekout-id");
var targetDiv='#ResourceStatus'+checkoutId;
$.post('url',{Id:checkoutId},function(result){
$(targetDiv).html(result);
});
});
});
$.ajaxSetup({ cache: false });