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