我有一个简单的部分视图,我想每5秒自动调用一次服务器上的方法。部分视图每5秒调用一次服务器上的方法 - 页面本身不需要更改
加载局部视图从总体布局:
@{Html.RenderAction("PingServer", "Account"); }
的控制器是这样的:
public ActionResult PingServer()
{
return PartialView("PingServer");
}
实际的 “_PingServer” 局部视图:
@{
<script language="javascript" type="text/javascript"
src="http://code.jquery.com/jquery-latest.js">
</script>
<script language="javascript" type="text/javascript">
$(function() {
setInterval(Foo, 5000);
});
function Foo() {
$.post("/Shared/ImHere.ashx", null, function() { });
}
</script>
}
的实际"ImHere.ashx.cs"
看起来是这样的:
public class ImHere : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
SiteUser.ImHere();
}
public bool IsReusable
{
get
{
return false;
}
}
}
======================
这只是不工作。
它实际上用于在MVC2上工作,但在MVC3上没有更多。 我理解部分视图在MVC3中处理的方式现在与“_”(下划线)的概念有点不同,并且不确定这是否是问题。 我尝试重命名该部分视图_PingServer ...但仍然没有效果。
也许这是我加载部分视图为Html.RenderAction而不是Html.RenderPartial?
想法是,该调用需要每5秒运行一次,而不是在页面上更改一件事。
任何想法??
我可以问为什么你需要这个每5秒? – redsquare 2011-03-26 18:09:24
我猜你在发布代码之前已经简化了一些代码。我认为'RenderPartial'更有意义。另外,如何使用控制器/操作本身而不是'ashx'。最后,你还没有提到**是错误的?什么都没有发生?您是否尝试过在Chrome中进行调试?您是否尝试过Fiddler或Firebug来查看jQuery是否正在请求服务器? – gideon 2011-03-26 18:15:30
这用于处理MVC2 .. 我应该使用anotehr控制吗?当然,如果它的工作原理......但那是我在做MVC2时尝试做的事情,从未工作过。这就是我使用“ashx”的想法结束的原因(因为我无法将其作为正常控件)。 你将如何做一个每5秒钟调用一次服务器的局部视图控件,并且它可以在任何加载的页面上工作? – 2011-03-27 03:56:27