2015-11-29 104 views
0

你好我想signalr聊天這裏是我的指數Signalr聊天記錄用戶名

<script> 
    $(function() { 
     var currentMember= @Html.Raw(@ViewBag.Name); 
     // Reference the auto-generated proxy for the hub. 
     var chat = $.connection.chatHub; 
     // Create a function that the hub can call back to display messages. 
     chat.client.addNewMessageToPage = function (name, message) { 
      // Add the message to the page. 
      $('#discussion').append('<li><strong>' + htmlEncode(name) 
       + '</strong>: ' + htmlEncode(message) + '</li>'); 
     }; 
     // Get the user name and store it to prepend to messages. 
     $('#displayname').val(prompt('Enter your name:', '')); 
     // Set initial focus to message input box. 
     $('#message').focus(); 
     // Start the connection. 
     $.connection.hub.start().done(function() { 
      $('#sendmessage').click(function() { 
       // Call the Send method on the hub. 
       chat.server.send($('#displayname').val(), $('#message').val()); 
       // Clear text box and reset focus for next comment. 
       $('#message').val('').focus(); 
      }); 
     }); 
    }); 
    // This optional function html-encodes messages for display in the page. 
    function htmlEncode(value) { 
     var encodedValue = $('<div />').text(value).html(); 
     return encodedValue; 
    } 
</script> 

,而不是這一行

$('#displayname').val(prompt('Enter your name:', '')); 

我嘗試了這些

$('#displayname').val("@HttpContext.Current.User.Identity.Name"); 
$('#displayname').val(currentMember); 
的獲得登錄會員名

但這些沒有奏效。那麼我怎樣才能獲得我的登錄成員名?

+0

您登錄了嗎? HttpContext.Current是否爲空?發生什麼事 ? – Shyju

+0

是的我登錄但我不知道httpContext.current null或不,但我可以看到和錯誤說未捕獲的ReferenceError:GearedSkull沒有定義。 Gearedskull iste用戶 – furkan

+0

我做了一個警報,我的ViewBag.name和「@ HttpContext.Current.User.Identity.Name」很好用,但是這個signalr不能得到名字 – furkan

回答

0

看看這條線

var currentMember= @Html.Raw(@ViewBag.Name); 

假設ViewBag.Name將返回字符串furkan。如果你檢查頁面的視圖源,你會看到

var currentMember = furkan; 

Javascript會認爲furkan是一個變量,但它不是!

解決方案:用雙引號或單引號

var currentMember= '@Html.Raw(@ViewBag.Name)'; 

現在,環繞你的服務器代碼,如果你查查看網頁的源,這將是

var currentMember = 'furkan'; 

所以現在currentMember變量存儲一個字符串值。稍後您可以在代碼中使用它。

var currentMember= '@Html.Raw(@ViewBag.Name)'; 
alert(currentMember); 
$('#displayname').val(currentMember); 
+1

你是男人! – furkan

+0

你也可以告訴我如何創建一個按鈕點擊的房間,所以我想要這樣的東西。我會看到用戶,然後當我點擊一個,我會給他發送一個網址,就像chat/Index/room1一樣,只是發現了ppl或者誰都知道這個網址能夠加入。嘗試一對一或多對多的聊天邀請 – furkan