ControlとView間でデータを渡す場合に使用
Viewdata	Dictionary	キャストか型変換が必要
viewBug		dynamic object
TempData	Dictionary		セッションのラッパー
(Session)

★DBならControlがModelをViewに渡してViewはModelのPropertyで参照する。


Dim list As List(Of String) = New List(Of String) From {"aaa", "bbb", "ccc"}
Dim slist As New List(Of String)
slist.Add("s1")

Dim s As String = slist(0)
Console.WriteLine(s)

For i As Integer = 0 To 2
Next

For Each s In list
	Console.WriteLine(s)
Next

Nothing

Dim list As List(Of SampleClass) = New List(Of SampleClass) _
  From {
    New SampleClass With {.Year = 2017, .Month = 1, .Day = 18},
    New SampleClass With {.Year = 2017, .Month = 2, .Day = 14},
    New SampleClass With {.Year = 2017, .Month = 3},
    Nothing
  }
PrintCollection(list, "コレクション")


Dim dic As Dictionary(Of Integer, SampleClass) _
  = New Dictionary(Of Integer, SampleClass) _
    From {
      {1, New SampleClass With {.Year = 2017, .Month = 1, .Day = 18}},
      {2, New SampleClass With {.Year = 2017, .Month = 2, .Day = 14}},
      {3, New SampleClass With {.Year = 2017, .Month = 3}},
      {4, Nothing}
    }
PrintCollection(dic, "Addメソッドに複数の引数が要求されるもの")


クラス名	概要	ヘルパー・メソッド
ViewResult	指定されたビューを出力	View
PartialViewResult	指定されたユーザー・コントロールを出力	PartialView
RedirectResult	指定されたURLにリダイレクト	Redirect
RedirectToRouteResult	指定されたアクションにリダイレクト	RedirectToRoute
RedirectToAction
ContentResult	指定された文字列を出力	Content
FilePathResult	指定されたパスの内容をファイルとして出力	File
FileContentResult	byte配列の内容をファイルとして出力	File
FileStreamResult	ストリームの内容をファイルとして出力	File
JavaScriptResult	指定されたコンテンツをJavaScriptスクリプトとして出力	JavaScript
JsonResult	指定されたコンテンツをJSON(JavaScript Object Notation)として出力	Json
HttpUnauthorizedResult	承認の失敗時にHTTP応答コード「401 Unauthorized」をセット	-
EmptyResult	何もしない	-



---
ASP.NET MVC*1はビュー・スクリプトを以下の順番で検索する。

/Views/コントローラ名/アクション名.aspx
/Views/コントローラ名/アクション名.ascx
/Views/Shared/アクション名.aspx
/Views/Shared/アクション名.ascx



何かしらの処理後は、基本的にRedirectToRouteResultオブジェクトを利用するべき
アクションの処理後、異なるアクションにリダイレクトする
Return RedirectToAction("Index")


Razor(レイザー)

◆HTMLヘルパー

検証属性

属性							概要
------------------------------------------------
Required()						必須検証
StringLength(max)				文字列長検証(文字列長がmax文字以内か)
Range(min, max)					値範囲検証(値がmin~maxの範囲に収まっているか)
Compare(other)*					比較検証(値がほかのプロパティotherと等しいか)
Remote(action, controller)*		リモート検証(指定されたアクションで正否を判定)
RegularExpression(pattern)		正規表現検証(文字列が正規表現パターンpatternにマッチするか)
CustomValidation(type, method)	カスタム検証(クラスtypeのmethodメソッドで検証)

ビューヘルパー
@Using (Html.BeginForm("Action", "Todoed"))
  @Html.ValidationSummary(False)
  
@Html.EditorFor(Function(model) model.Isbn) @Html.ValidationMessageFor(Function(model) model.Isbn, "*")
End Using LabelFor/Label ラベルを生成 TextBoxFor/TextBox テキストボックスを生成 TextAreaFor/TextArea テキストエリア(複数行テキストボックス)を生成 PasswordFor/Password パスワード入力ボックスを生成 HiddenFor/Hidden 隠しフィールドを生成 RadioButtonFor/RadioButton ラジオボタンを生成 CheckBoxFor/CheckBox チェックボックスを生成 DropDownListFor/DropDownList 選択ボックスを生成 EnumDropDownListFor Enum型をもとに選択ボックスを生成 ListBoxFor/ListBox リストボックスを生成 ◆Validation @Html.ValidationSummary(False) ◆List(Of T) Dim fruitList As New List(Of String)(New String() {"apple", "banana", "citrus"}) For Each fruit As String In fruitList Debug.WriteLine(fruit) Next