ASP.NET MVC作為微軟官方的.NET平臺下MVC解決方案,自誕生起就吸引了眾多.NET平臺開發人員的眼球。在經歷了漫長Preview后,上個月微軟終于發布了其beta版。應該說,通過我親身實踐,我認為這個框架的設 " /> 亚洲综合久久久,久久大逼视频,欧美aa视频

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

ASP.NET MVC小論

  前言
      ASP.NET MVC作為微軟官方的.NET平臺下MVC解決方案,自誕生起就吸引了眾多.NET平臺開發人員的眼球。在經歷了漫長Preview后,上個月微軟終于發布了其beta版。應該說,通過我親身實踐,我認為這個框架的設計還是相當優秀的,至少從易用性來說,ASP.NET MVC要優于Java平臺上的Struts和Struts2。使用Struts實現MVC時,除了要寫一堆ActionForm、Action和ActionResult外,最頭疼的莫過寫于各種xml映射配置文件。Struts2雖然不用再寫ActionForm,并且降低了侵入度(其實Struts2和Struts關系不大,而基本可以認為是WebWork的后續版本),但是仍無法避免xml配置文件。
      ASP.NET MVC從一開始的設計思路就與Struts不同,它的映射是利用路由配置而非xml,從而大大降低了開發復雜度,并且比Struts要更直觀,更容易上手。
      可是,這并不表明ASP.NET MVC就是盡善盡美的。在我實踐的過程中,發現某些地方使用起來還是不太方便,在這里小小論述一下。不妥之處,還請各位盡情批評。
  別扭的視圖:能不能不要讓我承擔邏輯
      我個人認為,ASP.NET MVC第一個不太妥當的地方就是視圖的實現。在這個框架中,視圖是使用ASPX文件實現的。就呈現數據這一需求來說,ASP.NET MVC下一般性的做法是:控制器負責調用Model完成數據的讀取,并將需要呈現的數據通過ViewData傳遞給視圖,并選擇某視圖呈現。被選中的視圖要負責將ViewData中相應的數據讀取、分解,然后使用一定的邏輯語句將其呈現。
      這個方式,就要求視圖中存在一定的邏輯語句,如將ViewData中數據轉換成相應類型的類型轉換語句;如果需要按照某一條件呈現不同內容,則需要分支語句;而常用的表格式數據呈現需要用到循環語句。于是,我們就會看到視圖中充斥著各種<%%>、if、foreach等等的東西。
      當然,我不否認,良好的編寫可以讓這些代碼整潔的出現在視圖中。然而,在我的心目中,一個良好基于Web應用的MVC框架設計,其視圖是不應該存在任何可執行代碼的,而應該是一個單純的模板文件,或者說含有可替換標簽的頁面文件,就像php平臺下的Smarty那樣。至于視圖中相應的可替換標簽替換成什么內容,應該是控制器的責任。設計一套良好的標簽模板,對數據、分支、循環等常見任務設置相應標簽,我認為是更適合ASP.NET MVC的視圖設計。一來,這樣可以讓視圖真正“靜態化”,更有利于邏輯和表示的分離;二來,美工可以更好的關注于僅包含html代碼和標簽的視圖,而不用關注于可執行代碼。
  對Ajax的支持:仍然很不方便
      我們知道,現在在一個Web應用中加入Ajax元素是司空見慣的,微軟當然知道這一點,所以在ASP.NET MVC中,天然支持ASP.NET AJAX和jQuery,并提供了一個AjaxHelper來完成一些輔助性操作。然而,這個AjaxHelper的功能真是遠遠不夠。
      由于ASP.NET MVC的特性,導致某一個Action的Url不是固定的。所以在請求Action時,一般不是將Url硬編碼在頁面中,而是通過Html.ActionLink動態生成。這就出現了一個問題,Ajax請求怎么辦?當然,對于點擊鏈接或提交表單觸發的Action,AjaxHelper有專門的輔助方法,但是,如果某個Ajax請求不是通過鏈接或表單觸發的,就會很有問題。畢竟你不能把Url硬編碼在js里。
      關于這個問題,沒有太好的解決方案,目前只能用一些類似hack的方式。如將Url用Html.ActionLink寫入某個span,再將這個span的display設為none。最后,js從span中讀入Url進行請求。
      希望在后續版本中,ASP.NET MVC能對Ajax有更好的支持。
  文檔
      再一個我認為ASP.NET MVC不太理想的地方就是沒有完整的配套文檔。目前能找到的官方文檔只有Quick Start,并沒有完整的開發文檔。也許是因為正式版還沒有發布吧,希望配套文檔能盡快推出。
  后面的話
      雖然有以上諸多不便,但是ASP.NET MVC作為一個正在發展的框架,我個人還是很看好其前景的。希望它能越來越完善,給ASP.NET平臺上的MVC開發帶來更多的便利。

NET技術ASP.NET MVC小論,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 麻栗坡县| 通化市| 邮箱| 蒙山县| 湖北省| 金昌市| 达日县| 荣成市| 托里县| 巴里| 汤阴县| 汉源县| 上饶县| 林西县| 青龙| 南汇区| 平陆县| 锡林浩特市| 吉水县| 海淀区| 六安市| 东台市| 凭祥市| 剑川县| 彰武县| 闽侯县| 昭平县| 连平县| 界首市| 右玉县| 临沭县| 孙吴县| 黎平县| 达孜县| 仁寿县| 临城县| 邢台县| 陆河县| 辛集市| 德安县| 阿克陶县|