Jquery 通过ajax返回列表以填充表-值定义不足
我在学信号员,我在听 当我返回列表时,我所有的列值都被低估了 下面是我的视图当前的构造方式Jquery 通过ajax返回列表以填充表-值定义不足,jquery,ajax,json,signalr,asp.net-mvc-5,Jquery,Ajax,Json,Signalr,Asp.net Mvc 5,我在学信号员,我在听 当我返回列表时,我所有的列值都被低估了 下面是我的视图当前的构造方式 <script type="text/javascript"> $(function () { // Proxy created on the fly var job = $.connection.myHub; // Declare a function on the job hub so the server can invoke it job.clie
<script type="text/javascript">
$(function () {
// Proxy created on the fly
var job = $.connection.myHub;
// Declare a function on the job hub so the server can invoke it
job.client.displayStatus = function () {
getData();
};
// Start the connection
$.connection.hub.start().done(function () {
getData();
});
});
function getData() {
var $tbl = $('#tblJobInfo');
$.ajax({
url: '@Url.Action("Get", "Home")',
type: 'GET',
datatype: 'json',
success: function (data) {
console.log(data);
if (data.length > 0) {
$tbl.empty();
$tbl.append(' <tr><th>ID</th><th>Name</th><th>lname</th><th>phone</th></tr>');
var rows = [];
for (var i = 0; i < data.length; i++) {
rows.push(' <tr><td>' + data[i].id + '</td><td>' + data[i].fname + '</td><td>' + data[i].lname + '</td><td>' + data[i].phone + '</td></tr>');
}
$tbl.append(rows.join(''));
}
}
});
}
</script>
<div>
<table id="tblJobInfo" style="text-align:center;margin-left:10px"></table>
</div>
如有任何帮助/建议,将不胜感激
非常感谢
更新
下面是执行console.log(数据)时在浏览器中写入的内容
您需要这样做:
$.connection.hub.start().done(function () {
getData();
});
由于start()
是异步的,因此当前代码中对getData()
的调用是在start()
完成之前执行的。通过将代码放入done
,您可以确信SignalR已在该点创建了连接
编辑:
我认为问题在于控制器方法。它看起来像这样吗
public ActionResult Get()
{
var data = Get(); // Which returns List<JonInfo>.
return Json(data);
}
public ActionResult Get()
{
var data=Get();//返回列表。
返回Json(数据);
}
您需要将作业列表作为JSON返回
编辑:
根据我们在聊天室中的对话,问题是由以下电话引起的:
Clients.All.displayStatus()
以及打开多个选项卡。因此,将代码更改为
Clients.Caller.displayStatus()
应该可以了。Hi Jason,谢谢你提供的附加信息,我用你提供的代码片段替换了我的原始代码片段,但是我的表仍然有“未定义”的值,即使我在调试confrim时确实看到了正确的值,
success
函数中的变量data
确实包含值?是,我在返回数据上设置了一个断点;展开变量,我可以看到1行4列数据,分别是mt details id=1,fname=scott,lname=test,phone=07777这也有点奇怪,我有1行数据,但是当我在for循环前面放一个警报时,它会警告说data.length=68?你能做console.log(data)吗
作为成功的第一行
?这说明了什么,你能在你的问题中贴出来吗?
System.Collections.Generic.List`1[KnockOutjsTutorial.Models.JobInfo]
$.connection.hub.start().done(function () {
getData();
});
public ActionResult Get()
{
var data = Get(); // Which returns List<JonInfo>.
return Json(data);
}