【发布时间】:2010-04-28 15:21:39
【问题描述】:
我正在尝试调用 Silverlight 4 组件中的函数来打开文件对话框并将文件上传到服务器。 Silverlight 中一切正常,但我想从 JavaScript 调用该组件。所以我从 [ScriptableMember] 的 C# 函数调用按钮单击处理程序。调用函数时出现以下错误:
System.Security.SecurityException: Dialogs must be user-initiated.
at System.Windows.Browser.ManagedObjectInfo.Invoke(ManagedObject obj, InvokeType
invokeType, String memberName, ScriptParam[] args) at
System.Windows.Hosting.ManagedHost.InvokeScriptableMember(IntPtr pHandle, Int32 nMemberID,
Int32 nInvokeType, Int32 nArgCount, ScriptParam[] pArgs, ScriptParam& pResult,
ExceptionInfo& pExcepInfo)
我的代码基于 Tim Heuer 的教程,可在此处找到:http://www.silverlight.net/learn/videos/silverlight-videos/openfiledialog-and-file-upload/
我理解为什么会抛出错误,某种程度上,用户的“点击”是在 JavaScript 中完成的,并且可能没有通过 Silverlight。对于 Silverlight,这只是一个函数调用。
这是 Silverlight 4 的新政策吗?是否仍然可以只在屏幕后面使用 Silverlight 来上传文件?任何帮助表示赞赏。
【问题讨论】:
-
+1 完全相同的问题,我不想失望...
标签: javascript silverlight file-upload