2011-08-19 73 views
0

當客戶端位於頁面A.aspx上時,他按下某個按鈕後會出現回傳。Asp.net如何知道頁面生成?

服務器根據請求知道要重建哪個頁面。

但客戶如何知道要重新詢問哪個頁面?通過他的瀏覽器的當前網址?

這裏信息保存在客戶端?

+0

你指的是一個實際的按鈕被點擊,或超鏈接看起來像一個按鈕? –

+0

客戶端通常發送回當前URL,然後服務器知道該怎麼做 - 您在按鈕的Click事件處理程序中決定會發生什麼以及作爲客戶端的答案發送了什麼 – Yahia

回答

2

其定義在action屬性<form>。客戶端不需要重新詢問,服務器發送他的請求的響應。

1

一般答案:在客戶端,它是從表單或鏈接中提交的。

表單指向相對URL(表示當前URL起關鍵作用)或絕對URL(當前URL幾乎不起作用)。

對於鏈接它通常是相同的:無論是相對的還是絕對的。一個很大的區別是:鏈接使用HTTP GET,而表單可以使用HTTP POST(因此傳輸更多數據而不將它們編碼爲URL作爲參數)。

對於一個按鈕,它是被提交的表單。

2

ASP.NET只是.NET框架的一部分,但每個客戶端在普通的舊HTML中都可以在Web瀏覽器上看到。

ASP.NET爲您提供了幾個控件,可以方便地以編程方式使用它們,因此我們可以在代碼中設置各種事情(即在頁面顯示之前運行),以完成我們想要的操作。

的每一個環節,按鈕,圖像,網格,它只是HTML標記,如<a>的鏈接,<input type="button">的按鈕等等

請記住,現在,還有ASP.NET的2個variantes,在WebFormsMVC(你也可以閱讀有關choosing one in prole of the other

ASP.NET的WebForms

總是有<form><body>的開始和wrapps所有的代碼,因此,任何提交會做回發到相同的文件名,在你的例子A.apsx總會發布到A.aspx,然後如果你想,例如,將請求發送到B.aspx你需要有一個Click Event,將使用Server.Transfer("B.aspx")這將整個後重定向到B.aspx就像是從B.aspx

在最新的模式,ASP.NET MVC,它與Routes驅動器讓女孩讓你設置任何,每一個,多個方式來達到同一頁面。在MVC中,URL不指向特定的頁面,而是指向特定的控制器,並且由控制器在處理完數據後發送到特定的視圖,這就是爲什麼在MVC中url中沒有頁面(儘管如果需要,可以將其添加到路由中,並且可以使用Routing插件對WebForms完成相同的操作)。

現在,在MVC它沒有<form>結束了整個代碼,你需要,如果你想提交的東西,建立自己的<form>並指向正確的route

但是,就像在Webforms或任何HTML頁面中,通過form submittion發佈帖子,並且它是「路徑」,它始終是表單屬性action中的內容,讓您知道下一步是什麼。

我希望這可以幫助你認識到存在ASP.NET沒有什麼大的怪物,那只是重用控制和編程方式訪問它們的方法,並且,在最後,這是所有的HTML :)