为什么我的View更新不正确?

时间:2011-03-28 19:49:35

标签: jquery asp.net-mvc

我是ASP.NET MVC和jQuery的新手。我有一个jQuery UI datepicker,允许用户选择日期。在选择时,我有代码将日期参数发送到我的索引控制器操作,然后应该更新视图。但是,页面未更新。最终,我只想更新数据绑定的表而不是页面的其余部分。最好的方法是什么?

这是我的jQuery函数:

  $(function () {
  $("#datepicker").datepicker({
     onSelect: function (dateSelected) {
        $.post('<%= Url.Action("Index") %>',
           { date: dateSelected },
           handleSuccess
        );
     }
  });

});

控制器是这样的:

public ActionResult Index(string date)
{
   // ...
   Data = GetData();

   return View(Data);
}

在我使用OnSelect方法之前,我只是使用一个按钮来提交它。它工作得很好然后按下按钮,数据将被返回,视图将更新。但是当我以这种新方式调用它时,我看到传入了正确的参数,并且返回了正确的数据,但视图没有改变。

1 个答案:

答案 0 :(得分:1)

您的jQuery调用异步提交控制器操作。这意味着您负责更新页面。这可以在handleSuccess函数中完成。

最简单的方法是在成功处理程序中执行此操作。由于您的操作会返回html,因此您可以使用新内容替换表格的当前内容。

function handleSuccess(data) {
   $('#dataTable').html($(data).find('#dataTable').html())
}

我认为更好的解决方案是根据传递给操作的一些标志动态返回ViewResult或JsonResult。然后,您可以使用jQuery Templates来呈现结果。