私はMVC 4とカミソリが初めてです。複数の部分ビューを含むビューがあります。部分ビューの機能により、これらを他のビューでも再利用する予定です。
私のモデルは、複雑なオブジェクトのコレクションです。
public class EmployeeInfo
{
public EmployeeContactInfo contactInfo { get; set; }
public List<TelephoneInfo> phoneDetails { get; set; }
public AddressDetails addressDetails { get; set; }
}
私のメイン ビューのモデルは でEmployeeInfo
あり、他の部分ビューのモデルはそれぞれTelephoneInfo
、EmployeeContactInfo
およびAddressDetails
です。
RenderPartial
を使用して、部分ビューをロードしようとしRenderAction
ました。Partial
@using (Html.BeginForm())
{
@Html.Partial("ContactInfo",Model.contactInfo)
}
メイン フォームが送信されると、メイン モデルには部分ビューの更新された値がありません。
これを検索したところ、以下の 2 つの提案されたソリューションが見つかりました。
使用
EditorFor
- 機能し、モデルが更新されますが、テキスト ボックスだけでなく、いくつかの内部操作 (アドレスの検索など) を持つ他のコントロールのコレクションもあり、同じ部分ビューを他の場所 (ユーザー コントロールなど) で再利用する必要もあります。従来の ASP.NET)RenderAction
代わりに使用RenderPartial
- 私にはうまくいきませんでした。
私が間違っているか、何かが間違って理解されている場合はお知らせください。