C# ASP.NET MVC中服务器端事件的更新视图

C# ASP.NET MVC中服务器端事件的更新视图,c#,asp.net,ajax,asp.net-mvc,razor,C#,Asp.net,Ajax,Asp.net Mvc,Razor,我正在尝试使用ASP.NETMVC作为后端,使用S22.Xmpp库作为聊天功能来构建基于web的聊天。问题是,receive消息处理程序位于服务器端,但是需要在客户端更新视图。我相信这对于前端球员来说是一个简单的情况,但我不是他们中的一员 如何在聊天室中从其他客户端接收新消息时更新视图?我认为需要使用AJAX。请引导我 public class ChatController : Controller { public ChatController() {

我正在尝试使用ASP.NETMVC作为后端,使用S22.Xmpp库作为聊天功能来构建基于web的聊天。问题是,receive消息处理程序位于服务器端,但是需要在客户端更新视图。我相信这对于前端球员来说是一个简单的情况,但我不是他们中的一员

如何在聊天室中从其他客户端接收新消息时更新视图?我认为需要使用AJAX。请引导我

public class ChatController : Controller
    {
        public ChatController()
        {
            ChatEngine.Instance.OnMessageReceived = MessageReceived;
        }

        /// <summary>
        /// Handler on message received
        /// </summary>
        /// <param name="e"></param>
        private void MessageReceived(S22.Xmpp.Im.MessageEventArgs e)
        {
            // we can do only server side updates, but can't to manipulate View here
            RedirectToAction("Index", "Home");  // this doesn't work
        }
公共类ChatController:控制器
{
公共聊天室管理员()
{
ChatEngine.Instance.OnMessageReceived=MessageReceived;
}
/// 
///接收到消息时的处理程序
/// 
/// 
收到私有无效消息(S22.Xmpp.Im.MessageEventArgs e)
{
//我们只能进行服务器端更新,但不能在这里操纵视图
RedirectToAction(“Index”,“Home”);//这不起作用
}

您需要在服务器端创建一个回调以进行更新。请尝试查看已添加的SignalHandler,正如您在MessageReceived的代码中所看到的。SignalR不是一个选项,我使用的是XMPP。我不知道这个库。但在事件发生时,您可以重定向视图,因此您必须以某种方式将此数据推送到接收方。cente将调用此实例r所以在这个实例上尝试重定向receiver的视图是没有意义的。是什么让你认为不能将SignalR与XMPP一起使用?SignalR是普通AJAX的替代品,而不是XMPP的替代品。最后,我选择SignalR作为聊天引擎,因为我有使用XMPP的经验。