熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Silverlight應用程序獲取ASP.NET頁面參數

2013-11-13 10:22:29  來源: .NET編程 

  在開發Silverlight應用程序時我們經常會遇到這樣一種情況需要在Silverlight應用程序的UserControl中獲取ASPNET頁面參數這個參數不一定來自於當前Silverlight應用程序的宿主頁面而有可能來自於其它的ASPNET頁面

  本文我們簡單的介紹一下如何在Silverlight應用程序中獲取ASPNET頁面參數

  需求

  如下面的項目結構我們會在Defaultaspx頁面中需要傳遞兩個值到SilverlightTestPageaspx頁面並且需要在SilverlightTestPageaspx頁面所宿主的Silverlight應用程序中獲取並顯示

  TerryLee_0103

  其中Defaultaspx頁面看起來如下圖所示

  TerryLee_0104

  在單擊Submit按鈕時轉向SilverlightTestPageaspx頁面並傳遞兩個參數如下代碼所示          protected void btnSubmit_Click(object sender EventArgs e)
        {
            ResponseRedirect(StringFormat(SilverlightTestPageaspx?username={}&email={}
                thistxtUserNameText
                thistxtEmailText));
        }

  使用InitParams

  第一種方法我們自然會使用InitParams屬性在Silverlight宿主頁面加載時我們在ASPX頁面中獲取參數並作為初始化參數傳遞給Silverlight應用程序如下代碼所示          protected void Page_Load(object sender EventArgs e)
        {
            thisXamlInitParameters = StringFormat(username={}email={}
                RequestQueryString[username]
                RequestQueryString[email]);
        }

  然後在Silverlight應用程序的UserControl中設置兩個屬性如下代碼所示          public String UserName
        {
            set {
                thislblUserNameText = value;
            }
        }
        public String Email
        {
            set {
                thislblEmailText = value;
            }
        }

  這樣就可以在Application_Startup事件中獲取初始化參數並傳遞給UserControl如下代碼所示          private void Application_Startup(object sender StartupEventArgs e)
        {
            Page page = new Page();
            pageUserName = eInitParams[username];
            pageEmail = eInitParams[email];
            thisRootVisual = page;
        }

  這樣我們就通過InitParams來在Silverlight應用程序中獲取到了ASPNET頁面的參數運行後效果如下圖所示

  TerryLee_0105

  使用HtmlDocument

  其實上面的方法獲取ASPNET頁面中參數有些麻煩我們可以直接使用HtmlDocument在HtmlDocument中定義了QueryString屬性如下代碼所示

  TerryLee_0106

  這樣我們可以在Silverlight直接使用HtmlDocument對象來獲取當前Silverlight應用程序宿主頁面中的參數如下代碼所示          void Page_Loaded(object sender RoutedEventArgs e)
        {
            IDictionary<String String> paras = HtmlPageDocumentQueryString;
            thislblUserNameText = paras[username];
            thislblEmailText = paras[email];
        }

  運行後可以看到與上面的效果一致

  TerryLee_0105

  總結

  本文的內容非常簡單介紹了如何在Silverlight應用程序中獲取ASPNET頁面參數希望對大家有所幫助


From:http://tw.wingwit.com/Article/program/net/201311/13418.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.