前言
Asp.net WebForm 和 Asp.net MVC(簡稱MVC) 都是基于Asp.net的web開發框架,兩者有很大的區別,其中一個就是MVC更加注重http本質,而WebForm試圖屏蔽http,為此提供了大量的服務器控件和ViewState機制,讓開發人員可以像開發Windows Form應用程序一樣,基于事件模型去編程。兩者各有優缺點和適用情景,但MVC現在是許多Asp.net開發者的首選。
WebForm是建立在Asp.net的基礎上的,Asp.net提供了足夠的擴展性,我們也可以利用這些在WebForm下編寫像MVC一樣的框架,這個有機會再寫。說到WebForm很多人就會聯想到服務器控件(拖控件!!!),其實不然,我們也可以完全不使用服務器控件,像MVC那樣關注html。WebForm要拋棄服務器控件,集中關注html,首先就要將<form runat="server"></form>標簽去掉,這個runat server 的form 是其PostBack機制的基礎。既然我們要回歸到html+css+js,那么意味著許多東西都要自己實現,例如處理Ajax請求。不像MVC那樣,WebForm開始的設計就將服務器控件作為主要組成部分,如果不使用它,那么只能利用它的擴展性去實現。
本系列就是實現一個基于WebForm平臺的輕量級ajax組件,主要分為三個部分:
1. 介紹WebForm下各種實現方式。
2. 分析ajaxpro組件。
3. 編寫自己的ajax組件。
一、Ajax簡介
異步允許我們在不刷新整個頁面的情況下,像服務器請求或提交數據。對于復雜的頁面,為了請求一點數據而重載整個頁面顯然是很低效的,ajax就是為了解決這個問題的。ajax的核心是XmlHttpRequest對象,通過該對象,以文本的形式向服務器提交請求。XmlHttpRequest2.0后,還支持提交二進制數據。
ajax安全:出于安全考慮,ajax受同源策略限制;也就是只能訪問同一個域、同一個端口的請求,跨域請求會被拒絕。當然有時候需求需要跨域發送請求,常用的跨域處理方法有CORS(跨域資源共享)和JSONP(參數式JSON)。
ajax數據交互格式:雖然Ajax核心對象XmlHttpRequest有"XML"字眼,但客戶端與服務器數據交換格式不局限于xml,例如現在更多是使用json格式。
ajax 也是有缺點的。例如對搜索引擎的支持不太好;有時候也會違背url資源定位的初衷。
二、Asp.net MVC 平臺下使用ajax
在MVC里,ajax調用后臺方法非常方便,只需要指定Action的名稱即可。
前臺代碼:
<body> <h1>index</h1> <input type="button" value="GetData" onclick="getData()" /> <span id="result"></span></body><script type="text/javascript"> function getData() { $.get("GetData", function (data) { $("#result").text(data); }); }</script>
新聞熱點
疑難解答
圖片精選