2009-04-30 30 views
0

我有一個小的網絡應用被寫在ASP.NET,VB.NET的URL的目標頁,.NET 3.5通過querstring傳遞價值,而不顯示與ASP.NET Web窗體

我通過從價值使用查詢字符串的default.aspx到demo.aspx。當點擊Go按鈕的URL將是這樣的:本地主機/ demo.aspx ID = 4

但我想網址爲某事像這樣被點擊Go按鈕時:??本地主機/ ID = 4並將id值傳遞給demo.aspx,以便顯示預期的結果。如何在不使用路由技術的情況下儘可能完成這項工作。

+0

增加了幾個標籤可能擴大觀衆 – 2009-04-30 04:14:57

回答

0

是這樣的嗎?

protected void btnGo_Click (Object sender, EventArgs e) 
{ 
    Response.Redirect("localhost/?" + Request.QueryString); 
} 

不知道什麼時候你想改變網址嗎?不知道路由技術是什麼。抱歉。

2

只有當Web服務器認爲demo.aspx是默認文檔時,這纔會起作用。當您在不指定頁面名稱的情況下加載頁面時(例如localhost /?id = 4示例),Web服務器將定位具有預定義名稱的文件並將其用作默認文檔。通常這個文件叫做default.aspx(或.asp,.htm,.html,.php或類似的東西)。所以,如果你想加載任何其他頁面,你需要聲明名稱,或使用URL重寫技術。

+0

在這種情況下,它是不一樣的頁面。所以我需要重寫URL。 – 2009-04-30 04:18:01

0

如果您希望它與回發一起工作,您仍然需要確保Web服務器配置了默認文檔,如default.aspx。

in 3.5 sp1 MS終於允許我們設置表單的action屬性。

因此,init你可以明確的設置,現在

Form1.Action = "/mydirectory/" 

買者頁:IIS的某些版本不允許張貼到一個目錄。 (XP IIS爲例)

1
  1. 修改您的旅途按鈕鏈接按鈕,並設置HERF = 「?ID = [ID]」 使用下面的代碼的Default.aspx的
  2. 修改Page_Load事件。

公衆的Page_Load(對象發件人,EventArg E) {

if(!string.IsNullOrEmpty(Request["id"])) 
{ 
    // Using Server.Transfer() function to call Demo.aspx page. 
    // Client still see "localhost/?id=[id]" at address bar. 
    Server.Transfer("Demo.aspx?id=" + Request["id"]); 
} 

}