zoukankan      html  css  js  c++  java
  • 如何在Silverlight应用程序中获取ASP.NET页面参数

    asp.net Silverlight应用程序中获取载体aspx页面参数

    有时候SL应用中需要使用由aspx页面中传递过来的参数值,此时通常有两种方法获取

      1. 使用InitParameters属性,动态设置传递参数 。

      2. 在SL工程中使用HtmlPage类来直接获取页面参数。

    如下面的项目结构,我们会在Default.aspx页面中需要传递两个值到SilverlightTestPage.aspx页面,并且需要在SilverlightTestPage.aspx页面所宿主的Silverlight应用程序中获取并显示:

      其中Default.aspx页面看起来如下图所示:

      在单击Submit按钮时,转向SilverlightTestPage.aspx页面,并传递两个参数,如下代码所示:

    protected void btnSubmit_Click(object sender, EventArgs e)
    {
      Response.Redirect(String.Format(SilverlightTestPage.aspx?username={0}email={1},
        this.txtUserName.Text,
        this.txtEmail.Text));
    }

      使用InitParams

      第一种方法,我们自然会使用InitParams属性,在Silverlight宿主页面加载时,我们在ASPX页面中获取参数,并作为初始化参数传递给Silverlight应用程序,如下代码所示:

    protected void Page_Load(object sender, EventArgs e)
    {
      this.Xaml1.InitParameters = String.Format(username={0},email={1},
        Request.QueryString[username],
        Request.QueryString[email]);
    }

      然后在Silverlight应用程序的UserControl中设置两个属性,如下代码所示:

    public String UserName
    {
      set {
        this.lblUserName.Text = value;
      }
    }
    public String Email
    {
      set {
        this.lblEmail.Text = value;
      }
    }

      这样就可以在Application_Startup事件中获取初始化参数,并传递给UserControl,如下代码所示:

    private void Application_Startup(object sender, StartupEventArgs e)
    {
      Page page = new Page();
      page.UserName = e.InitParams[username];
      page.Email = e.InitParams[email];
      this.RootVisual = page;
    }

      这样我们就通过InitParams来在Silverlight应用程序中获取到了ASP.NET页面的参数

    第二种方法:使用HtmlDocument

      其实上面的方法获取ASP.NET页面中参数有些麻烦,我们可以直接使用HtmlDocument,在HtmlDocument中定义了QueryString属性,如下代码所示:

      这样我们可以在Silverlight直接使用HtmlDocument对象来获取当前Silverlight应用程序宿主页面中的参数,如下代码所示:

      下面是利用HtmlPage类来获取参数的代码:

      代码如下:

    void Page_Loaded(object sender, RoutedEventArgs e){ 
    IDictionary<String, String> paras = HtmlPage.Document.QueryString; 
    this.lblUserName.Text = paras["username"]; 
    this.lblEmail.Text = paras["email"];}
  • 相关阅读:
    4. Postman测试集的批量执行(转)
    3. Postman Tests断言(转)
    2. Postman发送各种格式请求的方法
    1. Postman的安装
    2. Django创建项目
    Redis学习笔记(一)
    Oracle连接查询
    Redis学习笔记(五)- 数据类型之set类型
    Redis学习笔记(四)-数据类型之list类型
    PL/SQL实现JAVA中的split()方法的小例子
  • 原文地址:https://www.cnblogs.com/xuxin-1989/p/3966548.html
Copyright © 2011-2022 走看看