傳統型ASPNET Web Forms是基於同時包含了表現層和後台代碼的Web頁面所以緊隨其後出現的ASPNET AJAX特別是這個框架的服務器端控件並沒有像它們本應該的那樣光芒四射於是很多跟隨AJAX時髦的ASPNET開發者只是向ASPNET頁面中隨意地放置一些UpdatePanel控件以便使其程序實現基本的AJAX支持實際上這只是防止了頁面的閃爍而根本上頁面還是進行了完整的回發並且要經歷整個頁面的生存周期為了消除ASPNET Web Forms所依賴的頁面回寄和ViewState等復雜技術微軟又推出了ASPNET應用開發的另一個可選框架—ASPNET MVC也正是基於前面的分析ASPNET MVC中也加入了部分AJAX支持技術但是目前的ASPNET MVC框架尚未發布其正式發行版本在許多方面仍存在不完善的地方尤其是對於AJAX技術僅提供了有限的支持本文中我們將通過一個簡單的例子來討論如何借助於ASPNET MVC Preview 框架提供的AjaxForm方法實現基本的AJAX編程支持
一 引言
如果你詳細研究一下ASPNET MVC框架每個版本之間的變化信息有關資源那麼你會注意到新版本的框架中提供了一組新對象例如AjaxHelper和AjaxExtensions借助於這些對象你可以為你的ASPNET MVC應用程序添加流行的Ajax支持功能此外借助於客戶端JavaScript腳本框架JQuery你也能實現同樣的目的而且借助於開源工程MVCContrib似乎你也能夠實現同樣的Ajax支持
本文中我們針對ASPNET MVC Preview 框架提供的Ajax作一簡單的討論分析其提供的基本的Ajax支持功能
二 實例剖析
(一)創建示例ASPNET MVC工程
啟動Visual Studio (我使用的是Team System版本)創建一個新的ASPNET MVC工程並命名為MvcBuiltinAjax(注本實例中使用的是目前最新的ASPNET MVC Preview 而且在本例中我們並不關心是否加入單元測試支持框架的問題)
(二)修改視圖頁面Indexaspx
請注意本例中我們直接修改視圖頁面Indexaspx我們將在此頁面中添加一個文本框和一個按鈕控件我們的目的是當點擊此按鈕控件時執行表單提交功能通過此過程我們將回調服務器端並取得相應的字符串而且此字符內容將被以Ajax方式填入到按鈕控件旁邊的div元素中圖展示了實例程序的某一運行時刻的快照圖中當我們在文本框中輸入字符串張三時後台控制器Action方法查詢已有數據串如果其中沒有剛剛輸入的內容則顯示可以使用這個名字!否則顯示 此名字已經被使用了!的提示
現在我們來看一下修改視圖Indexaspx中涉及的主要內容如下所示
<asp:Content ID=
indexContent
ContentPlaceHolderID=
MainContent
runat=
server
>
<p>
<%using (Ajax
Form(
ExamineTextBox
new AjaxOptions {UpdateTargetId =
resultDiv
}))
{ %>
<%= Html
TextBox(
textBox
)%>
<input type=
submit
value=
Button
/>
<span id=
resultDiv
/>
<% } %>
</p>
</asp:Content>
請注意這裡所使用的AjaxForm幫助函數和引用span元素的UpdateTargetID屬性的值有關AjaxOptions的用法也有許多值得考察的地方後面再進行討論
如果你進一步分析一下運行時刻上面視圖頁面的相應源碼那麼你會注意到對應於上面內容的如下一段內容
[] [] []
From:http://tw.wingwit.com/Article/program/net/201311/15136.html