MVC 3部分视图上的jQuery.load()只调用服务器一次(不是重新绑定问题)

本文关键字:一次 问题 绑定 新绑定 调用 视图 3部 jQuery MVC load 服务器 | 更新日期: 2023-09-27 18:28:48

以下代码显示了1个视图、1个局部视图、1个控制器。该视图包含一个获取当前时间的按钮和一个显示该时间的局部视图。按钮的点击通过jQuery连接,调用部分视图容器上的$.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");
        }
    }
}

MVC 3部分视图上的jQuery.load()只调用服务器一次(不是重新绑定问题)

它正在被缓存。我使用了一个动作属性:

public class NoCacheAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted ( ActionExecutedContext context )
    {
        context.HttpContext.Response.Cache.SetCacheability( HttpCacheability.NoCache );
    }
}

[HttpGet]
[NoCache]
public JsonResult GetSomeStuff ()
{
    ...
}