c#linq对象到javascript输出

c#linq对象到javascript输出,javascript,asp.net-mvc,signalr,Javascript,Asp.net Mvc,Signalr,在我的信号器应用程序中,我使用以下集线器方法发送通知:- C#代码:- Javascript代码客户端:- connection.addData = function (data) { for (var i = 0; i < data.length; i++) { var element = data[i]; $('#notiadd').append("<li>" + element.Not

在我的信号器应用程序中,我使用以下集线器方法发送通知:- C#代码:-

Javascript代码客户端:-

connection.addData = function (data) {
            for (var i = 0; i < data.length; i++) {
                var element = data[i];
                $('#notiadd').append("<li>" + element.NotificationTitle + "<a href='" + element.NotificationLink + "'>Click Here</a><input type='hidden' value='" + element.ID + "' /> <a href='#' class='delnoti'>X</a> </li>");
            }
        };
connection.addData=函数(数据){
对于(变量i=0;i”+element.NotificationTitle+””);
}
};
获取输出:-

safasfasfa单击此处X

未定义单击此处X

未定义单击此处X

未定义单击此处X

未定义单击此处X

未定义单击此处X

未定义单击此处X

未定义单击此处X

未定义单击此处X

未定义单击此处X

未定义单击此处X

您可以签入输出,以确保只有第一个通知到达并且未定义。
我在C代码中调试应用程序,发送完整的数据,但javascript会产生一些输出错误。

将代码更改为以下内容

connection.addData = function (data) {
  // console.log("data", JSON.stringify(data)) // Print the output to the console
  var html = $.map(data, function (i, element) {
    return "<li>" + element.NotificationTitle + "<a href='" + element.NotificationLink + "'>Click Here</a><input type='hidden' value='" + element.ID + "' /> <a href='#' class='delnoti'>X</a> </li>";
  }).join("");

  $("#notiadd").append(html);

};
connection.addData=函数(数据){
//log(“data”,JSON.stringify(data))//将输出打印到控制台
var html=$.map(数据、函数(i、元素){
返回“
  • ”+element.NotificationTitle+”
  • ”; }).加入(“”); $(“#notiadd”).append(html); };
    在这个解决方案中,您预先创建所有html,并向DOM添加一次。这要快得多

    希望这能解决您的问题。

    只需更改C代码:-


    在调用append函数并报告得到的结果之前,您可以添加一个console.log(“element”,i,element)吗?到Bart:-element 0 Object{$id=“1”,id=98,NotificationTitle=“safasfa”,…}element 1 Object{$ref=“3”}element 2 Object{$ref=“5”}element 3 Object{$ref=“7”}element 4 Object{$ref=“9”}element 5 Object{$ref=“11”}element 6 Object{$ref=“13”}element 7 Object{$ref=“15”}element 8 Object{$ref=“17”}element 9 Object{$ref=“19”}@BhavinPatolia能否添加以下代码行作为addData函数的第一行,并将输出添加到您的问题?console.log(“data”,JSON.stringify(data))
    connection.addData = function (data) {
      // console.log("data", JSON.stringify(data)) // Print the output to the console
      var html = $.map(data, function (i, element) {
        return "<li>" + element.NotificationTitle + "<a href='" + element.NotificationLink + "'>Click Here</a><input type='hidden' value='" + element.ID + "' /> <a href='#' class='delnoti'>X</a> </li>";
      }).join("");
    
      $("#notiadd").append(html);
    
    };
    
    var ntf = ege.notifications.Where(u => u.UserID == uid).ToList();
            var collection = ntf.Select(x => new
            {
                ntitle = x.NotificationTitle,
                nlink = x.NotificationLink,
                nid = x.ID
            });
            Clients[connid].addData(collection);