2016-12-26 7 views
0

정확한 주제와 함께 주제를 보았습니다. 그 답을 따랐지만, 여전히이 일을 할 수는 없지만, 내가 무엇인지 말해 줄 수 있기를 바랍니다. 잘못하고있다. 허브 (허브)에서 클라이언트로 개체 목록 (Usenames)을 보내려고하지만 출력은 [개체 개체]입니다. 여기 내 클래스가 단지 한 속성입니다 : 내 허브 클래스에서SignalR이 Hub 클래스의 클라이언트 목록을 클라이언트에 보냅니다.

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

나는 목록을 만드는거야, 나는 공공정적 수정을 변경하려고했으나 같은 결과했습니다

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

는 내가 시험에 대한 캐치 일부 더미 데이터를 넣어 시도/캐치 문,있는 방법이있다. 이미 그것을 디버깅, 캐치가 제대로 불러 내 ​​개체는 목록에있다 :

  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

첫 시도는 좋았습니다. 시그널러 문제도 없습니다. 그것은 자바 스크립트 문제입니다.

그냥이이

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

을 변경해야

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

두 번째 시도가 매우 미쳤다. stringUpdateWaitingUsrList으로 보낸 다음 번으로 보내십시오. 물론 json 문자열 문자로 채워진 목록으로 이러한 미친 결과를 얻었습니다.

+0

첫 번째로, 고맙습니다. 내 학교 프로젝트에서 두 번째 도움을 주셔서 감사합니다. 내가 올바른지 이해한다면 나는 첫 번째 버전을 고수하고 자바 스크립트 만 바꿔야한다. 그러나 지금 나는 3 시간 "undefined"를 얻는다. 나는 또한 "waitingUsrName"이라는 줄에는 작은 글자가 붙어 있기 때문에 철자법을 검사했는데, 내 것이 중요 할 지 모르겠다.하지만 나는 두 가지 결과를 모두 시도했다. –