0

サーバーとして IHttpHandler にいくつかのデータを投稿するために、Silverlight アプリケーションのクライアントで C# に次のコードがあります。

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("送信"); 上記は、サーバーが作業を完了していなくても、送信呼び出しを行い、ブロックしないようです。

サーバーでの処理が完了したことを知るために、コールバックを登録する方法はありますか?

ありがとう

4

1 に答える 1

1

私の知る限り、Silverlight のフォーム POST メソッドに対してコールバックのようなものを使用することはできません。

別の選択肢があります。Silverlight C# コードから JavaScript メソッドを呼び出し、そこで ajax リクエストを投稿します。次に、成功のコールバック ハンドラとエラー コールバックを使用して、ビジネス ロジックを修正します。

Silverlight C# コードから javascritpt を呼び出す方法と、javascript から Silverlight C# メソッドを呼び出す方法については、このリンクを参照してください。

System.Windows.Browser.HtmlPage.Window.Invokeセキュリティ上の問題になる可能性があることに注意してください。

お役に立てば幸いです。

于 2014-12-17T04:55:00.870 に答える