我正在研究以下signalR
的例子http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr-and-mvc-4
我想实现它,并且代码就在那里,但是我不希望用户在提示窗口中输入用户名,我将使该页面可供登录用户使用,因此我将有上下文。用户。
我想更改提示部分以使用服务器端的context.User,但我不知道如何。
非常感谢
$('#displayname').val(prompt('Enter your name:', ''));
答案 0 :(得分:3)
您可以提供有关页面加载的信息或通过AJAX检索它。我建议前者。
取决于您的视图引擎,类似于......
$('#displayname').val('@(Context.User.Replace("'", "\\'"))');
或更好,将其作为视图模型的属性提供,因此它将是
$('#displayname').val('@(Model.User.Replace("'", "\\'"))');
答案 1 :(得分:1)
我使用了以下代码。但是,它不会将您重定向到另一个页面。但是,当用户登录到应用程序时,它会使登录窗口不可见,并显示聊天室。希望这会有所帮助。
$(function () {
setScreen(false);
var chatHub = $.connection.chatHub;
registerClientMethods(chatHub);
$.connection.hub.start().done(function () {
registerEvents(chatHub)
});
});
function setScreen(isLogin) {
if (!isLogin) {
$("#divchat").hide();
$("#divLogin").show();
}
else {
$("#divchat").show();
$("#divLogin").hide();
}
};
答案 2 :(得分:1)
// If the user is Authenticated shows de nick if not sets it to invitado + random number
if (Request.IsAuthenticated) {
$('#displayname').val(User.Identity.GetUserName());
} else {
$('#displayname').val("invitado" + Math.floor((Math.random() * 100) + 1));
// $('#displayname').val(prompt('Enter your name:', '')); (Alias Window... what you had)
}