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を実現する