こんにちは。
Windows10でASP.NETのアプリケーションを開発しています。
Visual Studio 2017 Communityを使っています。
###前提・実現したいこと
Controller.cs->Index.cshtml->Edit.cshtml->Controller.csとデータを受け渡しするときの挙動を教えてください。
###試したこと
Modelを用意しました。
Controller.cs
でデータベースからModelに値を入れました。
[HttpGet]
public ActionResult Index()
{
var model = db.Users;
return View(model);
}
Index.cshtml
@model Models.UserModel
Edit.cshtml
@model Models.UserModel
@Html.LabelFor(model => model.Password)
@Html.PasswordFor(model => model.Password, new { @class = "form-control" })
などのように必要なものを表示。
###発生している問題・エラーメッセージ
ModelにはId, Password, CreateDate, Items(そのUserに紐づくデータ)などがあります。
このうち、Idは自動採番したもので編集されては困るのでHiddenにしています。
CreateDateも同様に、編集されては困るのでHiddenにしています。
Itemsは構造が複雑で、なにもしていません。
この状態で、Index->EditまではItemsを保持しているのですが、Edit->ControllerにもどすとItemsが欠落します。nullになります。
Hiddenにすれば欠落しないようなのですが、Itemsは構造が複雑で、Hiddenで書くのもたいへんそう。
複雑な構造の情報をController->Index->Edit->Controllerとわたすとき、とくにEdit->Controllerに渡すときに、nullにせずに渡すには、View(Edit.cshtml)で値をすべてhiddenにして書き出す必要があるのでしょうか?
###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586
です。
よろしくお願いします。