我使用函数JQuery.load()。
第一次通话时,会返回正确的局部视图。
我希望如果我一次又一次点击复选框,每次点击td“示例”都会刷新实际时间。
问题是该功能仅在首次呼叫时返回正确的时间。在下一次调用时,它返回相同的值(在此时刻)。
在debug中,控制器中的断点仅捕获第一个调用。其他电话忽略。
ASP似乎只生成一次局部视图并一次又一次地返回。
如果我需要每次调用新数据,我该怎么办?
对于这个例子,存在没有ajax的解决方案,但我需要它来处理更复杂的问题。
的java:
<script type="text/javascript">
function Example() {
jQuery('#example').load('/Home/Example/1/1');
}
</script>
查看:
...
<table>
<tr>
<td>
<% Html.RenderPartial("Example"); %>
</td>
<td id="example">xxx
</td>
</tr>
</table>
<input class="checkbox" type="checkbox" name="xxx" id="xxx"
onclick="Example();" />
...
部分视图“Example.ascx”:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
<%@ Import Namespace="System" %>
<%= DateTime.Now.ToLongTimeString() %>
控制器:
public ActionResult Example(string locality, int id)
{
return PartialView("Example");
}
PS:如果我通过HTML.RenderPartial调用它,它在每次刷新时都是新鲜的,但是ajax的调用仅在编译时的第一次调用时才是新的。重新打印后,它会返回旧数据。
答案 0 :(得分:1)
Stop jQuery .load response from being cached
你需要.ajax:)
答案 1 :(得分:0)
您可以使用$.ajax
并设置cache: false
像这样:
$.ajax({
url: '<%: Url.Action("Requests", "Home", new{ area = "Competition"})%>',
cache: false,
type: "GET",
dataType: "html",
success: function (result) {
$("#divCompetitionRequests").html(result);
}
});
并且有一个很好的解决方案@ayk回答。