2011-10-06 59 views
1

我有一個網站建立在ASP.NET 4.0中,目前我有一個下拉框與網址,一個按鈕,該網址並解析出文本,然後最後一個結果框解析的文本。ASP.net 4.0中的可選參數c#

我想要做的不是去我的網站,並在下拉框中選擇URL,我想傳遞參數作爲完整的URL,並讓按鈕去做,然後做它的事情。有點像一個永久鏈接,我可以交給用戶

例如:

http://localhost:62554/WebSite5/Default.aspx - >http://google.com

google.com被放入一個變量(可以說其MyURL)和按鈕就像它是在下拉框中一樣。 **更新的代碼:在

using (StreamReader objReader = new StreamReader(objRequest.GetResponse().GetResponseStream())) 

string newURL; 
String url; 

protected void Page_Load(object sender, EventArgs e) 
{ 

    //Request.Params.Get("newURL").ToString(); 
    //string url = Request["newURL"]; 
    //url = Request.QueryString["newURL"].ToString(); 
    url = Request.QueryString["newURL"].ToString(); 

    parseButton_Click(sender, e); 
} 
protected void parseButton_Click(object sender, EventArgs e) 
{ 

    //MyURL = deviceCombo.Text; 
    //MyURL = Request.Params.Get(""); 
    //MyURL = Request.Params.Get("newURL"); 
    //MyURL = newURL; 
    //string MyURL = Request.Params["newURL"].ToString(); 

    WebRequest objRequest = HttpWebRequest.Create(url); 
    objRequest.Credentials = CredentialCache.DefaultCredentials; 
    using (StreamReader objReader = new StreamReader(objRequest.GetResponse().GetResponseStream())) 
    { 
     originalText.Text = objReader.ReadToEnd(); 
    } 

    //Read all lines of file 
    String[] crString = { "<BR>&nbsp;" }; 
    String[] aLines = originalText.Text.Split(crString, StringSplitOptions.RemoveEmptyEntries); 
    String noHtml = String.Empty; 

    for (int x = 0; x < aLines.Length; x++) 
    { 
     if (aLines[x].Contains(filterCombo.SelectedValue)) 
     { 
      noHtml += (RemoveHTML(aLines[x]) + "\r\n"); 

     } 
    } 

    //Print results to textbox 
    resultsBox.Text = String.Join(Environment.NewLine, noHtml); 
} 

任何想法,現在得到一個500錯誤?謝謝

+3

什麼? (15個字符) – Greg

+0

有點像永久鏈接,我可以交給用戶,而不是他們去我的網站,點擊下拉框並選擇正確的URL解析。 – KPS

+0

一注:不要在谷歌上測試任何東西。首先,這不好。其次,更重要的是,取決於您正在進行多少測試,Google可能會決定阻止您。我見過它發生。 – NotMe

回答

1

你可以從Request對象中的URL變量。

string url = Request["newURL"]; 

把這個你喜歡的地方,如Page_Load中

protected void Page_Load(object sender, EventArgs e) 
{ 
    string url = Request["newURL"]; 
} 
+0

這仍然不適合我 – KPS

+0

你能發佈更多的代碼和你傳遞的URL嗎?這應該沒有問題,這個問題必須在其他地方。 – Kirk

+0

我用我的代碼更新了原始問題,我得到的網址,但它崩潰'使用(StreamReader objReader =新的StreamReader()。GetResponseStream())) ' – KPS

3

你的問題很難理解,但我認爲你要做的是傳遞URL中的網站字符串。我想你想要做的是使用URL參數,所以如果他們去「http:// localhost:62554/Website5/default.aspx?newURL = http://google.com」,它就好像他們已經選擇谷歌.com在下拉列表中。

之後的任何事情?在URL中作爲URL PARAM處理,你可以在這樣的代碼隱藏訪問這些PARAMS:

string newURL = Request.Params.Get("newURL"); 
+0

是的,這正是我想要做的,但我在哪裏放這個代碼? – KPS

+0

將這段代碼放入代碼隱藏的page_load部分,確保將其包裝在if(!IsPostBack)中,以便它只會在第一次觸及頁面時發生。 – Porco

+0

我試過,但它回來作爲NULL – KPS