2016-12-26 3 views
0

全く同じ問題を抱えたトピックを見てきましたが、そこでの答えに従っていますが、まだこの作業を行うことはできません。間違っている。私は、ハブからクライアントにオブジェクトのリスト(Usenames)を送信しようとしていますが、出力は[オブジェクトオブジェクト]です。ここに私のクラスはそれでちょうど1プロパティである:私のハブクラスでSignalRは、Hubクラスからクライアントにオブジェクトのリストを送信します

public class WaitingUser 
{ 
    public string waitingUsrName{ get; set; } 
} 

私はリストを作成しています、私は公共静的修飾子を変更しようとしましたが、同じ結果ました:

static List<WaitingUser> WaitingUseresList = new List<WaitingUser>(); 

私はテストのためにキャッチでいくつかのダミーデータを入れのtry/catch文と方法を持っています。すでにそれをデバッグし、キャッチが適切と呼ばれ、私のオブジェクトがリストにあります。

  catch 
      { 
       // WaitingUseresList.Add(new WaitingUser { waitingUsrName = userName }); 
       WaitingUseresList.Add(new WaitingUser { waitingUsrName = "John" }); 
       WaitingUseresList.Add(new WaitingUser { waitingUsrName = "Mike" }); 
       WaitingUseresList.Add(new WaitingUser { waitingUsrName = "Steven" }); 
       Clients.All.UpdateWaitingUsrList(WaitingUseresList); 
      } 

そして、私のクライアント側で私が持っている:

objHub.client.UpdateWaitingUsrList = function (WaitingUseresList) { 
     $('.WaitingUsrs').val(''); 
     var list = WaitingUseresList; 
     for (var i = 0; i < list.length; i++) { 
      $('.waitingUsrs').append('<li>' + list[i] + '</li>'); 
     }    
     var height = $('.waitingUsrs')[0].scrollHeight; 
     $('.waitingUsrs').scrollTop(height); 
    } 

出力は次のようになります。

  • [オブジェクトオブジェクト]
  • [オブジェクトオブジェクト]
  • [オブジェクトオブジェクト]

私はother topicに従って動作させていますが、それでもわかりません。だから私はこのような私のcatch文を変更しました:

catch 
    { 
     // WaitingUseresList.Add(new WaitingUser { waitingUsrName = userName }); 
     WaitingUseresList.Add(new WaitingUser { waitingUsrName = "John" }); 
     WaitingUseresList.Add(new WaitingUser { waitingUsrName = "Mike" }); 
     WaitingUseresList.Add(new WaitingUser { waitingUsrName = "Steven" }); 
     string list = Newtonsoft.Json.JsonConvert.SerializeObject(WaitingUseresList); 
     Clients.All.UpdateWaitingUsrList(list); 
     Clients.Caller.NoExistAdmin(); 
    } 

と私のクライアント側:

objHub.client.UpdateWaitingUsrList = function (list) { 
     $('.WaitingUsrs').val(''); 
     var waitingList = list; 
     for (var i = 0; i < waitingList.length; i++) { 
      $('.waitingUsrs').append('<li>' + list[i] + '</li>'); 
     }    
     var height = $('.waitingUsrs')[0].scrollHeight; 
     $('.waitingUsrs').scrollTop(height); 
    } 

出力はthisになります。いいですが、まだ私が期待したものではありません。私は間違って何をしていますか?前もって感謝します!

答えて

0

あなたの最初の試みは良かったです。そしてあなたはシグナルを発しません。それはJavaScriptの問題です。あなたの第二の試みはかなりクレイジーです

$('.waitingUsrs').append('<li>' + list[i].waitingUsrName + '</li>');

はちょうどこのこの

$('.waitingUsrs').append('<li>' + list[i] + '</li>');

を変更する必要があります。 をUpdateWaitingUsrListに、その後にそれぞれ送信します。 もちろん、あなたはjsonの文字列でいっぱいのリストでこのような狂った結果を得ています。

+0

まず、ありがとう、私は学校プロジェクトで2度目に私を助けてくれています!私が正しいことを理解したら、最初のバージョンに固執し、ちょうどjavascriptを変更するべきです。しかし、今私は3回「未定義」になる。私はまた、あなたの行 "waitingUsrName"は小文字で、私の首都は問題であるかどうかわからないので、スペルをチェックしましたが、私は両方と同じ結果を試しました - 未定義3回。 –

関連する問題