別のモデルをラップするモデル ラッパー クラスがあります。
public class LogicPage {
public MyPage Pg { get; set; }
}
public class MyPage {
public string name { get; set; }
}
フォーム作成ビューでは、強く型付けされたフォーム ヘルパーを使用します。
@model MyAppCore.Components.LogicPage
@using (Html.BeginForm("Create","PageAdmin",FormMethod.Post)) {
<div class="editor-field">
@Html.EditorFor(model => model.Pg.name)
@Html.ValidationMessageFor(model => model.Pg.name)
</div>
...
}
私のコントローラーでは、アクションを次のように定義します。
[HttpPost]
public ActionResult Create(LogicPage logicpg)
{
return View("View",logicpg.Pg);
}
ただし、モデル (MyPage) の詳細をリストする「ビュー」に MyPage ページが表示される場合、ユーザーが入力したデータは表示されず、表示されるページの詳細はすべて MyPage のデフォルト値 (LogicPage のデフォルトのパラメーター コンストラクターなしで初期化) です。 )。フォーム内のデータがアクション内のモデルに渡されていないようです。データが渡されない理由を教えてください。
さらに明確にするために、モデル LogicPage の「作成」フォーム ビューと、モデル MyPage の「表示」詳細ビューの 2 つのビューがあります。
作成.cshtml
@model MyAppCore.Components.LogicPage
View.cshtml
@model MyAppCore.Components.MyPage
ありがとう