3

我有以下问题:

我必须实现一种聊天应用程序。因此我使用 ASP.NET 4.5 和 WCF。当我开始点击我想与之聊天的人时,我调用了一个 wcf 网络服务。这个网络服务从我点击它的人那里调用 wcf 回调。我现在的问题是,我在客户端调用了该事件,但我无法打开一个新的 ChatWindow。

[CallbackBehavior(UseSynchronizationContext = false, ConcurrencyMode = ConcurrencyMode.Single)]
public class ChatContext : IChatClient, INotifyPropertyChanged
{
    #region Events

    public event EventHandler StartChat;

    #endregion


    public void FollowChatBegin(Person invitee)
    {
        StartChat(invitee, new EventArgs());
    }

我已经在我的主页中注册了 StartChat 事件:

 public partial class MainPage: System.Web.UI.Page
{       

    protected void Page_Load(object sender, EventArgs e)
    {
       // ...

        Global.ChatContext.StartChat += ChatContextOnStartChat;
    }

 private void ChatContextOnStartChat(object sender, EventArgs eventArgs)
    {
        var person= (Person) sender;

        string path = this.Request.Url.AbsoluteUri.Remove(this.Request.Url.AbsoluteUri.IndexOf(Request.Url.LocalPath, Request.Url.LocalPath.Length));
        path += "/Controls/Chat/ChatWindow.aspx";

        string parameters = "did=" + person.Id + "height=700px,width=800px,resizeable=yes,status=no";
        path += parameters;

        ScriptManager.RegisterStartupScript(this, this.GetType(), "openChartWindow", "window.open('" + path + "');", true);

        this.upMain.Update();
    }

}

ChatContextOnStartChat 给我以下问题:

  • this.Request 为空
  • 我无法调用我的 UpdatePanel.Update

我不知道如何简单地打开一个弹出窗口/对话框......我可以使用错误的模式吗?

4

0 回答 0