我在Silverlight应用程序中的客户端C#中有以下代码,用于发布一些数据 IHttpHandler作为服务器
var newForm = doc.CreateElement("form");
newForm.SetAttribute("action", somUri);
newForm.SetAttribute("method", "post");
body.AppendChild(newForm);
newForm.AppendChild(CreateInputElement(doc, "data", someData));
newForm.AppendChild(CreateInputElement(doc, "filename", filename));
newForm.AppendChild(CreateInputElement(doc, "contentType", contentType));
var obj = newForm.Invoke("submit");
问题是我无法确定提交给服务器上的IHttpHandler的数据是否实际完成。
newForm.Invoke("提交&#34);即使服务器尚未完成其工作,上面似乎也会进行提交调用而不会阻塞。
有没有办法注册回调,以便我知道服务器上的处理已经完成?
由于
答案 0 :(得分:1)
据我所知,对于silverlight中的表单POST方法,你不能有回调类的东西。
我还有另一种选择。从silverlight C#代码调用javascript方法并在那里发布ajax请求。然后你将拥有成功的回调处理程序以及错误回调使用它来纠正你的业务逻辑。
你可以参考这个link来了解如何从javascript调用silverlight C#代码和silverlight C#方法中的javascritpt。
请注意System.Windows.Browser.HtmlPage.Window.Invoke
它可能会成为安全问题。
我希望这有用。