Programming & Development Note

C# とか JavaScript が好きなプログラマー1年生です。

【ASP.NET Core 2.0】テンプレートヘルパーでModel の定義に従って最適な出力を得る

以下の記事の続きです。

sanonosa-dev.hateblo.jp

公式のチュートリアルに沿って行います。

docs.microsoft.com

DIsplayFor / EditorFor などのテンプレート関連のビューヘルパーはモデルの定義に従って自動で最適にな出力を行います。

例えば EditorFor はモデルのプロパティが string 型ならテキストボックス、 bool 型ならばチェックボックスを出力します。
また、プロパティに対するアノテーションによっても出力するフォーマットなどを制御できます。


現在、以下のようにカラム名がすべて英語、ReleaseDate が時刻まで表示されてしまっています。

f:id:sanonosa:20180218104717p:plain

Models/Movie.cs ファイルを開き、以下のように編集します。

using System;
using System.ComponentModel.DataAnnotations;

namespace RazorPagesMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }

        [Display(Name = "タイトル")]
        public string Title { get; set; }

        [Display(Name = "公開日")]
        [DataType(DataType.Date)]
        public DateTime ReleaseDate { get; set; }

        [Display(Name = "ジャンル")]
        public string Genre { get; set; }

        [Display(Name = "価格")]
        public decimal Price { get; set; }
    }
}

System.ComponentModel.DataAnnotations をインポートします。
出力したい内容に合わせて適切なアノテーションを設定します。


アプリを起動すると表示が改善されています。

f:id:sanonosa:20180218105644p:plain

f:id:sanonosa:20180218105827p:plain