【问题标题】:How can I get a variable into Silverlight 3 control from my ASP.NET code?如何从我的 ASP.NET 代码将变量放入 Silverlight 3 控件?
【发布时间】:2009-09-21 10:22:34
【问题描述】:

我正在玩 Silverlight 3。我正在尝试将当前用户 ID 放入 Silverlight 3 页面。我做了一些研究,initParams 似乎是正确的方法。麻烦的是,他们似乎使用了 asp:Silverlight 控件,而这在 SL3 中消失了。假设这是正确的方法,我试图将变量放入 initParams 列表中。

我开始使用名为“MyFirstSilverlightApp”的新 Silverlight 3 应用程序。我在“MyFirstSilverlightAppTestPage.aspx”中添加了一个代码隐藏页面,让我可以做一些聪明的事情。

我已经设法通过将它添加到对象定义的参数中来对 initParam 进行硬编码:

    <param name="initParams" value="userID=id42" />

在 App.xaml.cs 中,我已将以下内容添加到 Application_Startup:

    string userID = e.InitParams["userID"];

我已经在构造函数的参数中将它传递到我的页面中,然后在控件中使用它。一切正常。

我无法解决的是如何从我在代码隐藏中创建的变量中获取值到参数名称值定义中。任何帮助将不胜感激。

【问题讨论】:

    标签: asp.net silverlight-3.0 parameter-passing


    【解决方案1】:

    一种快速而肮脏的方法是在参数中使用&lt;% %&gt;:-

    <param name="intiParams" value="userID=<%=myUserID%>" />
    

    我首选的解决方案是创建我自己的 Silverlight Web 控件,该控件可以按照我的应用程序定制的方式呈现对象标记及其内容。

    【讨论】:

    • 啊,是的,这行得通。我看到了对这些标签的引用,但没有 = 符号我无法让它们工作。就像你说的,它感觉有点肮脏,但它适用于此。我从未编写过 Web 控件——我倾向于在必要时涉足 ASP.NET,所以我只做了基本的东西。我不认为你可以发布这样的示例代码,对吗?
    【解决方案2】:

    将其添加到您的资源集合中。

    试试类似的东西。

    For Each item As KeyValuePair(Of String, String) In e.InitParams
        Resources.Add(item.Key, item.Value)
    Next
    

    【讨论】:

    • 我猜你还没有理解我的问题。要么,要么我不明白你的解决方案。 e.InitParams 在 Application_Startup 中可用,不是吗?我需要将参数放入 e.InitParams,而不是从 e.InitParams。我正在尝试将其注入到我的 Silverlight 应用程序中。
    • 你说得对,对不起,我看错了你的帖子。这指的是一旦将参数传递到您的应用程序中就对其进行处理。
    猜你喜欢
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2023-03-10
    • 2015-01-28
    • 1970-01-01
    • 2010-11-09
    相关资源
    最近更新 更多