ASP.NET MVC 2.0 Strong-typed HTML Helpers

ASP.NET MVC 2009 年推出以後,受到許多的 Web Developers 的歡迎,尤其是寫慣了 PHP/ASP/JSP script-based Web Application developers,因為 ASP.NET MVC 更貼近了他們的開發環境,而且它也是完全以 MVC (Model-View-Controller) 架構所發展出來的 Framework,所以有愈來愈多的 MV广告d application 出現,雖然它不會直接和 Web Forms Framework 競爭,但它可是相當有潛力的新興 Framework

 

其中最令人激賞,也最容易讓 ASP.NET Web Forms Developers 混亂的功能之一,就是與 ASP 時代極為類似的 View Rendering (顯示介面繪製) (來源:http://weblogs.asp.net/scottgu/archive/2008/09/02/asp-net-mvc-preview-5-and-form-posting-scenarios.aspx)9914295_201006291500351.jpg

 

 

雖然又有點像是義大利麵的寫法,但它沒有 ASP 本身的高度程式碼與介面混合的問題,只有 System.Web.Mvc.Html HtmlHelper 會出現在 View 中,而因應 Model Controller 直接做 View 的改變,也是 MVC 主要的核心功能之一,因此 ASP.NET MVC 使用這樣的設計法是相當棒的,它尤許開發人員直接以程式控制 HTML,而不再像是 Web Forms 還要經過層層的 Object Model/Events 來存取 HTML 本身。

 

不過在 ASP.NET MVC 1.0 時代,HtmlHelper 沒有辦法很聰明的直接透過 Model 本身的屬性來設定值 (例如 name 屬性)9914295_201006291500352.jpg

 

 

顯示出來的是:9914295_201006291500353.jpg

 

 

這對開發人員來說還是有一點不太方便,而且也容易發生打錯字而發生 HTTP Post 無法與 Model 對應的情況發生。針對這一點,ASP.NET MVC 2.0 提出了一個新的方法:Strong-typed HTML Helpers,它可以直接以 Model type 來輸出 HTML 指令,最直接可以看到的改變就是 name 屬性,例如:9914295_201006291500354.jpg

 

 

它的輸出是:

 9914295_201006291500355.jpg

 

由於 Strong-typed 的支援,開發人員可以直接使用 Lambda Expression 的方式來設定 Model 的來源(或做一些額外的運算,這在 ASP.NET MVC 1.0 是不行的)。9914295_201006291500356.jpg

 

 

所有支援 Strong-typed HTML Helper 的方法,都是以 Html.HtmlHelperFor() 的方法呈現,例如文字方塊是 Html.TextBoxFor(),下拉式方塊是 Html.DropDownListFor(),所有 MVC 2.0 支援的 Strong-typed HTML Helper 有:

 

繪製 HTML 標籤類:

·  Html.TextBoxFor()

·  Html.TextAreaFor()

·  Html.DropDownListFor()

·  Html.CheckboxFor()

·  Html.RadioButtonFor()

·  Html.ListBoxFor()

·  Html.PasswordFor()

·  Html.HiddenFor()

·  Html.LabelFor()

 

其他類型:

·  Html.EditorFor()

·  Html.DisplayFor()

·  Html.DisplayTextFor()

·  Html.ValidationMessageFor()

 

此功能未來可以在 Visual Studio 2008 (要安裝 MVC 2.0 runtime) 以及 Visual Studio 2010 同時支援,Visual Studio 2010 預設是使用 strong-typed view 來建立 view。例如使用下列的 Controller9914295_201006291500357.jpg

 

 

若要建立支援 strong-typed view,只要在新增 View 時設定使用 strong-typed HTML Helper (Create a strongly-typed view)9914295_201006291500358.jpg

 

 

新建出來的 View 如下所示:9914295_201006291500359.jpg

 

 

 

fj.png1.JPG

fj.png2.JPG

fj.png3.JPG

fj.png4.JPG

fj.png5.JPG

fj.png6.JPG

fj.png7.JPG

fj.png8.JPG

fj.png9.JPG

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9914295/viewspace-666588/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9914295/viewspace-666588/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值