是否可以使用Razor.Html.Partial每秒更新一部分页面?

时间:2015-03-04 04:24:34

标签: c# razor nancy

我正在使用带有razor引擎的Nancy,我想执行一个每秒更新页面部分的函数。我已经完成的工作是创建了一个名为_partial.cshtml

的简单部分视图

代码:

<p>@System.DateTime.Now</p>

在我的主视图中,我设置了一个间隔来记录每秒的部分视图的值

代码:

setInterval(function() {
    console.log(@Html.Partial("../_partial.cshtml", null));
}, 1000);

然而,每次渲染相同的值,因为它在客户端(在这种情况下为chrome)被解释为静态valye而不再是动态...所以我怎么能绕过它呢?

1 个答案:

答案 0 :(得分:0)

您需要编写一个从服务器返回局部视图的操作。在Javascript代码中,您必须编写一个AJAX GET / POST请求,该请求应放在setInterval()块中。如果它是普通的Asp.net MVC,我会这样做。对于南希来说,它应该没什么不同。

// Controller Action Method, assuming name of controller as DataController
public ActionResult RealTimeData()
{
  return PartialView("_partial");
}

// Javascript Code
setInterval(function(){
  $.get('@Url.Action("RealTimeData", "Data")', null, function(data, status, xhr){
     // Update the UI.
  }).fail(function(x, status, err){
     // Handle errors
  });
},1000);

希望这有帮助。