ASP Razor:QuerySingle错误地返回相同的结果

时间:2014-05-01 21:02:19

标签: asp.net asp.net-mvc razor

这段代码应定期从数据库中请求数据:

<script type="text/javascript">
    function refreshData() {
        @{
            var db2 = Database.Open("StarterSite");    
            string tresc2 = db2.QuerySingle(someQuery, 1).RoleName;


            <text>
                alert("@tresc2");

            </text>

        } 

    }
    setInterval(function() {refreshData()}, 5000);

我的工作是:

  • 我运行此代码

  • 我更改了数据库中的值

  • 我希望看到更改数据的警报

问题是警报一旦反复就会一遍又一遍地显示相同的值。

我在这里做错了什么?

谢谢

1 个答案:

答案 0 :(得分:2)

那是因为警报永远不会改变。当请求作为

时,MVC呈现文本
alert("whatever the value is on the first attempt");  

如果您在浏览器中点击了视图源,您将在HTML中看到它。为了实际获取新值,您必须使用一些ajax返回到服务器。

首先,在控制器中设置json结果:

public JsonResult GetNewResult()
{
    var db2 = Database.Open("StarterSite");    
    string tresc2 = db2.QuerySingle(someQuery, 1).RoleName;
    return this.Json(tresc2);
}

然后查询它:

$.ajax({
  url: "/Controller/GetNewResult",
  context: document.body
}).done(function(data) {
  alert(data);
});