ASP.NET 3.5 MVCアーキテクチャと実戦ノート6 HtmlHelperコントロール解析

9638 ワード

FormExtensionsクラス


FormExtensionsクラスは静的クラスで、BeginForm、BeginRouteForm、EndFormの3種類の拡張方法を定義しています.実際の開発では、EndForm拡張メソッドを書くことなくusing文を使用することもできます.

InputExtensionsクラス


InputExtensionsクラスは5種類の拡張方法を定義した:CheckBox,Hidden,Password,RadioButton,TextBox.
    
   
    <fieldset>
        <legend>CheckBoxlegend>
         
        <label for="checkbox1">XieTilabel>   <label for="checkbox2">HeiTilabel> <br/><br/> <input type="submit" value="submit" /> </fieldset>  

 
実行後のWebソースを見てみましょう.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
	TestPage
title>head> <body> <div> <form action="/Study/Index" method="post">System.Web.Mvc.Html.MvcForm <fieldset> <legend>¨¦¨¨??CheckBoxlegend> <input checked="checked" id="checkBox1" name="MyCheckBox1" type="checkbox" value="true" /><input name="MyCheckBox1" type="hidden" value="false" /> <label for="checkbox1">label> <input id="mycheckBox2" name="MyCheckBox2" type="checkbox" value="true" /><input name="MyCheckBox2" type="hidden" value="false" /> <label for="checkbox2">label> <br/><br/> <input type="submit" value="submit" /> fieldset> form> div> body> html>

各CheckBoxコントロールについて、MVCは別の非表示の対応コントロールを生成した.
;
コントローラでチェックボックスの状態を検出するには、次のコードを使用します.
        public ActionResult  CheckBox(FormCollection formCollection)
        {
            bool myCheckBox1 = formCollection[0].Contains("true");
            bool myCheckBox2 = formCollection["checkBox2"].Contains("true");

            ViewData["MyCheckBox1"] = myCheckBox1;
            ViewData["MyCheckBox2"] = myCheckBox2;

            return View("Test");

        }

 
Password拡張メソッドは主にパスワードを入力するテキストボックスを実現する
RadioButtonは主にラジオボタンコントロールを実現する
TextBoxは主に単行のテキストボックスを実現する
 

LinkExtensionsクラス


ActionLink,RouteLink

RenderPartialExtensionsクラス


関連するユーザーコントロールをビューに表示

SelectExtensionsクラス


:DropDownList,ListBox

TextAreaExtensionsクラス


:TextAreaコントロールの設定

ValidationExtensionsクラス


:コントロールの入力検証ValidationMessage,ValidationSummaryを実現する