2010-01-05 82 views
0

我正在使用Server.Transfer()將處理從一個頁面轉移到另一個頁面。問題在於,頁面源代碼中的表單操作已被傳輸,根據瀏覽器中的URL引用目標頁面而不是原始頁面。<form>使用Server.Transfer時的動作()

有沒有辦法讓表單的動作反映瀏覽器中的網址,而不是實際的目標網頁?

在此先感謝!

馬克

+2

是你想要實現的Response.Redirect()嗎? – 2010-01-05 18:57:45

回答

0

如果您給窗體一個ID您可能能夠更改屬性屬性中的操作。

<form runat="server" id="form1" action=""> 
</form> 

,然後在代碼指的是形式是這樣的:

form1.Attributes["action"] = "new action"; 

改變行動可能會導致用於新頁面無法正常工作回發事件。如果您的設計許可將使用Response.Redirect,您的另一種選擇。

此外,您可能需要查看PostBackUrl中新頁面上的按鈕,這將更改它們發佈的頁面。

0

您應該調查HttpContext.RewritePath在此處是否有用。通常在這種情況下,您可以使用原始頁面的URL在目標頁面的PreRender事件上使用重寫路徑。這會導致使用當前內部路徑的控件生成URL等,以便「思考」它們在自己呈現時仍處於原始URL上。

+0

嗯。我在我的目標頁面中嘗試了ReritePath,也就是說,頁面的URL不友好,但它沒有任何作用。表單中的操作標籤仍然顯示不友好的網址。 有什麼建議嗎? – 2010-01-07 13:23:12

1

不用擔心,我使用System.Web.Routing命名空間重寫了我的路由代碼,所以所有邏輯都集中在我的global.asax中。作品一種享受!

感謝您的幫助。

Mark