Silverlight调用JavaScript方法的麻烦

时间:2012-05-21 20:26:05

标签: javascript silverlight webforms activex silverlight-3.0

所以我有一个Silverlight控件,我使用ActiveX对象表示法添加到ASP.NET Web窗体页面,如下所示:

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="500" height="48">
    <param name="source" value="/ClientBin/FileUpload.xap?t=<%=DateTime.Now.ToUniversalTime() %>"/>
    <param name="onError" value="onSilverlightError" />
    <param name="background" value="white" />
    <param name="minRuntimeVersion" value="3.0.40818.0" />
    <param name="autoUpgrade" value="true" />
    <asp:Literal ID="SilverlightInitParams" runat="server" />
    <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none">
        <img src="https://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
    </a>
</object>

在控件内,有一个按钮。单击按钮时,我想要调用JavaScript脚本。为了看看我是否可以使它工作,它应该调用肯定存在的JavaScript函数。然而,没有任何事情发生。

这是Silverlight代码的样子:

public partial class FileUploadControl : UserControl
{
    ...

    public FileUploadControl(IDictionary<string,string> parameters)
    {
        ...
        HtmlPage.RegisterScriptableObject("Page", this);

        InitializeComponent();
    }

    private void chooseFileButton_Click(object sender, RoutedEventArgs e)
    {
        HtmlPage.Window.Invoke("showStatus");

        ...
    }

    ...
}

以下是JavaScript方法:

function showStatus() {
    alert('Test from Silverlight.');
}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

.xap文件未复制到部署目录。我现在有另一个问题,但我不太确定它是什么。我现在在调查。