【ASP.NET MVC】【Razor】【VB】 Razor ~ ビュー・ヘルパー / サンプル編 [1] ~

はじめに

使用したビュー・ヘルパー

 * @Html.BeginForm
 * @Html.LabelFor
 * @Html.EditorFor
 * @Html.DisplayFor

注意 / 補足

@Html.LabelFor

 * 「.」(ピリオド)があるとその前の文字が表示されなくなる

【例】
@Html.Label("Hello.World!")
 => 「World!」と表示される

@Html.XxxxFor / XxxxForModel

 * 「XxxxForModel」だとラムダ式が省略できる

【例】
@Html.LabelFor(Function(model) model.Id)
@Html.LabelForModel(model.Id) ' ラムダ式が省略できる

サンプル

■ モデル

* PersonModel.vb
Namespace Models
    Public Class PersonModel
        Private Property _Id As Long
        Private Property _Name As String

        Public Property Id As Long
            Get
                Return Me._Id
            End Get
            Set(ByVal value As Long)
                Me._Id = value
            End Set
        End Property

        Public Property Name As String
            Get
                Return Me._Name
            End Get
            Set(ByVal value As String)
                Me._Name = value
            End Set
        End Property
End Namespace

■ コントローラ

* PersonController.vb
Imports System.Web.Mvc
Imports WebAppli.Models

Namespace Controllers
    Public Class PersonController
        Inherits Controller

        ' GET: Person
        Function Index() As ActionResult
            Return View()
        End Function

        ' GET: Person
        Function Result(model As PersonModel) As ActionResult
            Return View(model)
        End Function
    End Class
End Namespace

■ ビュー

* Index.vbhtml
@ModelType WebAppli.Models.PersonModel
@Code
    ViewData("Title") = "View"
End Code

<h2>View</h2>
@Using (Html.BeginForm(
                "Result", ' アクション名
                "Person", ' コントローラ名
                FormMethod.Post))
    @Html.LabelFor(Function(model) model.Id, htmlAttributes:=New With {.class = "control-label col-md-2"})
    @Html.EditorFor(Function(model) model.Id, New With {.htmlAttributes = New With {.class = "form-control"}})
    @Html.LabelFor(Function(model) model.Name, htmlAttributes:=New With {.class = "control-label col-md-2"})
    @Html.EditorFor(Function(model) model.Name, New With {.htmlAttributes = New With {.class = "form-control"}})

    @<input type = "submit" value="Send" Class="btn btn-default" />
End Using
* Result.vbhtml
@ModelType WebAppli.Models.PersonModel

@Code
    ViewData("Title") = "Edit"
End Code

<h2>Result</h2>

@Html.DisplayFor(Function(model) model.Id)<br />
<br />
@Html.EditorFor(Function(model) model.Name)<br />
<br />


関連記事

Razor ~入門編~

http://blogs.yahoo.co.jp/dk521123/35586581.html

Razor ~ ビュー・ヘルパー / サンプル編 ~ [2]

http://blogs.yahoo.co.jp/dk521123/35591389.html

Razor ~ ビュー・ヘルパー / サンプル編 ~ [3]

http://blogs.yahoo.co.jp/dk521123/35609153.html

Razor ~ ビュー・ヘルパー / 構文編 ~

http://blogs.yahoo.co.jp/dk521123/35681489.html