當客戶端位於頁面A.aspx上時,他按下某個按鈕後會出現回傳。Asp.net如何知道頁面生成?
服務器根據請求知道要重建哪個頁面。
但客戶如何知道要重新詢問哪個頁面?通過他的瀏覽器的當前網址?
這裏信息保存在客戶端?
當客戶端位於頁面A.aspx上時,他按下某個按鈕後會出現回傳。Asp.net如何知道頁面生成?
服務器根據請求知道要重建哪個頁面。
但客戶如何知道要重新詢問哪個頁面?通過他的瀏覽器的當前網址?
這裏信息保存在客戶端?
其定義在action
屬性<form>
。客戶端不需要重新詢問,服務器發送他的請求的響應。
一般答案:在客戶端,它是從表單或鏈接中提交的。
表單指向相對URL(表示當前URL起關鍵作用)或絕對URL(當前URL幾乎不起作用)。
對於鏈接它通常是相同的:無論是相對的還是絕對的。一個很大的區別是:鏈接使用HTTP GET,而表單可以使用HTTP POST(因此傳輸更多數據而不將它們編碼爲URL作爲參數)。
對於一個按鈕,它是被提交的表單。
ASP.NET只是.NET框架的一部分,但每個客戶端在普通的舊HTML中都可以在Web瀏覽器上看到。
ASP.NET爲您提供了幾個控件,可以方便地以編程方式使用它們,因此我們可以在代碼中設置各種事情(即在頁面顯示之前運行),以完成我們想要的操作。
的每一個環節,按鈕,圖像,網格,它只是HTML標記,如<a>
的鏈接,<input type="button">
的按鈕等等
請記住,現在,還有ASP.NET的2個variantes,在WebForms和MVC(你也可以閱讀有關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 :)
你指的是一個實際的按鈕被點擊,或超鏈接看起來像一個按鈕? –
客戶端通常發送回當前URL,然後服務器知道該怎麼做 - 您在按鈕的Click事件處理程序中決定會發生什麼以及作爲客戶端的答案發送了什麼 – Yahia