以下代码显示1 个 View 、1 个部分 View 和1 个 Controller 。该 View 包含一个获取当前时间的按钮和一个显示该时间的部分 View 。通过 jQuery 连接的按钮单击会调用分部 View 容器上的 $.load()。
第一次点击按钮效果很好,但后续调用不会到达服务器;函数触发,负载触发,但服务器从未收到请求。
知道问题可能是什么吗?
Index.cshtml
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title>ContainerView</title>
<script src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$('#btnRefresh').click(function () {
$("#divTime").load('@Url.Action("GetTime")');
});
});
</script>
</head>
<body>
<div>
<input id="btnRefresh" type="button" value="Get Time"/>
<div id="divTime">
@Html.Partial("_Time")
</div>
</div>
</body>
</html>
_Time.cshtml
@ViewData["Time"]
ContainerController.cs
using System;
using System.Web.Mvc;
namespace PartialViewAjaxFormModel.Controllers
{
public class ContainerController : Controller
{
//
// GET: /Container/
public ActionResult Index()
{
return View();
}
public PartialViewResult GetTime()
{
ViewData["Time"] = DateTime.Now.ToLongTimeString();
return PartialView("_Time");
}
}
}
最佳答案
它正在被缓存。我为此使用了一个操作属性:
public class NoCacheAttribute : ActionFilterAttribute
{
public override void OnActionExecuted ( ActionExecutedContext context )
{
context.HttpContext.Response.Cache.SetCacheability( HttpCacheability.NoCache );
}
}
[HttpGet]
[NoCache]
public JsonResult GetSomeStuff ()
{
...
}
关于c# - MVC 3 部分 View 上的 jQuery.load() 仅调用服务器一次(不是重新绑定(bind)问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9831104/