ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ASP.NET MVC 2.0 Strong-typed HTML Helpers

ASP.NET MVC 2.0 Strong-typed HTML Helpers

原创 Linux操作系统 作者:dongbeihu828 时间:2010-06-29 14:51:24 0 删除 编辑

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):

 

 

雖然又有點像是義大利麵的寫法,但它沒有 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 屬性):

 

 

顯示出來的是:

 

 

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

 

 

它的輸出是:

 

 

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

 

 

所有支援 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。例如使用下列的 Controller:

 

 

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

 

 

新建出來的 View 如下所示:

 

 

 

1.JPG

2.JPG

3.JPG

4.JPG

5.JPG

6.JPG

7.JPG

8.JPG

9.JPG

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

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-06-22

  • 博文量
    2
  • 访问量
    1935