Javascript 刷新局部视图中的表

Javascript 刷新局部视图中的表,javascript,jquery,asp.net,asp.net-mvc,asp.net-mvc-4,Javascript,Jquery,Asp.net,Asp.net Mvc,Asp.net Mvc 4,在将其逻辑应用到实际项目之前,我试图从一个空白的MVC项目(无身份验证)中生成一些代码块,但我似乎做得不对。我试图在局部视图中创建一个表,以便每隔一定时间重新加载/刷新/更新它自己,这样它将反映在另一个网页/浏览器中所做的任何更改 每隔几秒钟触发一个函数的代码段可以正常工作,但渲染/刷新就是它被触发的地方。我一直在遵循这个示例,但运气不佳() 这是我的代码: 视图(Index.cshtml) JavaScript(仅在index.cshtml中,因为我只是在测试) @节脚本{ @Scripts.

在将其逻辑应用到实际项目之前,我试图从一个空白的MVC项目(无身份验证)中生成一些代码块,但我似乎做得不对。我试图在局部视图中创建一个表,以便每隔一定时间重新加载/刷新/更新它自己,这样它将反映在另一个网页/浏览器中所做的任何更改

每隔几秒钟触发一个函数的代码段可以正常工作,但渲染/刷新就是它被触发的地方。我一直在遵循这个示例,但运气不佳()

这是我的代码: 视图(Index.cshtml)

JavaScript(仅在index.cshtml中,因为我只是在测试)

@节脚本{
@Scripts.Render(“~/bundles/jqueryval”)
$(文档).ready(函数(){
var url='@url.Action(“Person”);
var div=$(“#peopletablediv”);
setInterval(函数(){
div.load(url);
}, 2000);
});

我在asp.net MVC和web开发方面一般只有几个月的经验。我在这里会犯什么错误?

你说的
获取trippy是什么意思?
?从我在运行时观察到的情况来看,表会刷新到它在第一次执行时的呈现方式。例如,如果表有一个人,表会在2秒内刷新自己即使数据库中有超过1个人,也会进入该状态。您是否每2秒在
person()
操作中达到一个断点?如果不是,您可能正在缓存结果,并且应该添加
[OutputCache(Duration=0)]
属性。如果由于是子操作而引发错误,请将持续时间设置为1,而不是1。谢谢JamieD77,似乎已经解决了它!代码正常工作,我的问题显然是缓存。您所说的
获取trippy是什么意思?从我在运行时观察到的情况来看,表会刷新自身,以了解第一次执行时的呈现方式。与表中有1人一样,即使数据库中有多人,表也会在2秒内刷新到该状态。您是否每2秒在
person()
操作中遇到断点?如果不是,您可能正在缓存结果,并且应该添加
[OutputCache(Duration=0)]
属性。如果由于是子操作而引发错误,请将持续时间设置为1,而不是1。谢谢JamieD77,它似乎解决了问题!代码正常工作,我的问题显然是缓存。
@{
    ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
    @Html.ActionLink("Create New", "Create")
</p>
<div id="peopletablediv">
    @{ Html.RenderAction("Person");}
</div>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th></th>
    </tr>

    @foreach (var item in Model)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Name)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
                @Html.ActionLink("Details", "Details", new { id = item.Id }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.Id })
            </td>
        </tr>
    }
</table>
public class PeopleController : Controller
{
    private WebApplication1Context db = new WebApplication1Context();

    // GET: People
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult Person()
    {
        return PartialView(db.People.ToList());
    }
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
    $(document).ready(function () {
        var url = '@Url.Action("Person")';
        var div = $("#peopletablediv");
        setInterval(function () {
            div.load(url);
        }, 2000);
    });
</script>