wrongwrongな開発日記

しんまいさんの忘備録

【ASP.Net Core】@Html.TextAreaForの初期値が入らなくて詰まった話

状況

TextAreaForModelを正しく指定しているにも関わらず初期値が入らない状況になりました。

原因

TextAreaForを追加しようとする前は、ViewData経由でcshtml側に値を渡してバインドし、バインドされた値によってModelが初期化されるという構造になっており、Get時にModelは初期化していませんでした。
一方、TextAreaForは直にModelを参照して自身を初期化しようとします。

つまり、TextAreaForは初期化されていないModelを参照しようとしていたために初期値が入らなかったというのが原因です。

対処

Modelを初期化して初期値を代入すればできました。
というか、型的な意味でもViewDataを使わない形式にしておいた方が良かったと思います。