mvc 5 HTML Helper

6873 ワード

回転:http://www.cnblogs.com/CodeFox/p/3782535.html
 
HTML helperといえば、みんなは見知らぬはずではないです.MVC Viewを書く時に必ず使うべきです.HTML_HelpはHTML文字列を返す方法であり、この文字列はあなたが望むタイプの内容を表しています.例えば、HTML_Helperを使って標準的なHTMLタグを表示します.MVCが提供している内装のHTML helperがあなたのViewの出力需要を満たしていない場合、さらに複雑なタイプの内容を入力したいです.例えばHTML tableなど、MVCが提供するカスタマイズ機能を利用して開発して拡張したHTML helperを利用して、MVCが提供しているいくつかのHTML helperを簡単に紹介します.
異なるタイプのHTML Helpersは、まとめてMVCに下記の三つのタイプのHTML Helperを提供しています.
1.Inline HTML Helpers(別名内連結HTML Helper)
このタイプのHTML Helperは、定義されたビュービュービュービュービュービュービューでのみ使用でき、基本的な拡張しかできず、必要な重用性に乏しく、定義された文法はRazor@helperタグで始まり、後に添付方法の署名があります.例は以下の通りです.
@helper ListingItems(string[]items)
{
<ol>
@foreach(string item in items)
{
<li>@item)

)
 Prograamming Languags:
 @ListingItems(new string[]{"C"、""C+"、「C菗」)
 Book List:
 @ListingItems(new string[]{「How to C」、「how to C+」、「how to C菗」)
 
2.Buil-In Html Helpers(ビルドされたHTML Helper)
このタイプのHTML HelperはMVCのデフォルトでShipを提供しています.具体的な細分化は三つのタイプに分けられます.
1)標準HTML Helper
HTML Elementの例
TextBox
@Html.TextBox(「Textbox 1」、「val」)  Output: 
 
TextArea
@Html.TextArea(「Textarea 1」、「val」、5、15、null)  Output: 
 
Password
@Html.PasswodFor(m=>m.Password)  Output: 
 
ハイドフィールド
@Html.HddenFor(m=>m.UserId)  Output: 
 
CheckBox
@Html.C.heckBoxFor(m=>m.IsApproved)  Output: 
 
Radio Button
@Html.Radio Button For(m=>m.IsApproved,"val")  Output: 
 
Drop-down list
@Html.DropDownListFor(m=>m.Gender,new SelectList(new[]{"Male"、「Female"})  Output: 
 
Multile-select
@Html.ListBoxFor(m=>m.Hobries,new Multi SelectList(new[]{"Cricket","Chess"))  Output: 
3)テンプレート類HTML Helpers
これらのhelpersは、どのようなHTML要素を解決し、エンティティモデルクラスによる属性を提示するために使用されますか?これはユーザにとって非常に柔軟な方法であるが、初期化の設定が必要である.Templated HTML Helperを通じて正確なHTML要素を作成するには、Data Annotation類のDataType特性を使用することができます.例えば、Passwordデータタイプを使用すると、PasswordタイプのHTML入力要素が自動的に表示されます.具体例は以下の通りです.
 
Templated Helper 例
 
Display
Renders a read-only view of the specifed model property and selects an appination HTML element based on property's data.Html.Display(「Name」)
 
DisplayFor
Strongly typed version of the previous helper  Html.DisplayFor(m=>m.Name)
 
エディター
Renders an editor for the specified model property and selects an appromite HTML element based on property's data type and metadata.Html.Editor(「Name」)
 
Editor For
Strongly typed version of the previous helper  Html.Editor For(m=>m.Name)
 
3.カスタムHtml Helpers(Custom Html Helpers)
上記のHTML helpersがあなたのニーズを満たすことができない場合、あなた自身のカスタムhelper方法を作成することもできます.これは拡張方法を作成することによってHTMLHelperクラスまたはutilityクラスに静的方法を追加することによって実現する必要があります.具体的な例は以下の通りです.
public static class CustomHelpers

{

 //Submit Button Helper

 public static MvcHtmlString SubmitButton(this HtmlHelper helper, string 

 buttonText)

 {

 string str = "<input type=\"submit\" value=\"" + buttonText + "\" />";

 return new MvcHtmlString(str);

 }

 //Readonly Strongly-Typed TextBox Helper

 public static MvcHtmlString TextBoxFor<TModel, TValue>(this 

 HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TValue>>

 expression, bool isReadonly)

 {

 MvcHtmlString html = default(MvcHtmlString);



 if (isReadonly)

 {

 html = System.Web.Mvc.Html.InputExtensions.TextBoxFor(htmlHelper,

 expression, new { @class = "readOnly",

 @readonly = "read-only" });

 }

 else

 {

 html = System.Web.Mvc.Html.InputExtensions.TextBoxFor(htmlHelper,

 expression);

 }

 return html;

 }

}