ユーザーに添付された別のコンテンツパーツに追加のデータを保存できないようです。私は次のことをしました:
- モジュールを作成しました
- モジュールで、ProfilePartとProfilePartRecordのモデルを作成しました
- 移行では、ProfilePartRecordのテーブルを作成しました(ContentPartRecordタイプから)
- 移行では、WithPart ProfilePartを設定して、ユーザーのタイプ定義を変更しました。
- get用とpost用の2つの編集メソッドを持つドライバークラスを作成しました(コードスニペットは以下にあります)
- また、ProfilePartRecordタイプのprofilePartRepositoryのストレージフィルターを追加するハンドラーを作成しました
モジュール構造
- Drivers / ProfilePartDriver.cs
- Handlers / ProfileHandler.cs
- Models / ProfilePart.cs
- Models / ProfilePartRecord.cs
- Views / EditorTemplates / Parts / profile.cshtml
- Migrations.cs
- Placement.info
問題はドライバーにあると思うので。これは私のコードです:
パーツがユーザーにアタッチされているため、問題が発生していますか?または私は何か他のものが欠けていますか?
パブリッククラスProfilePartDriver:ContentPartDriver {
protected override string Prefix
{
get { return "Profile"; }
}
//GET
protected override DriverResult Editor(ProfilePart part, dynamic shapeHelper)
{
return ContentShape("Parts_Profile_Edit", () =>
shapeHelper.EditorTemplate(TemplateName: "Parts/Profile", Model: part, Prefix: Prefix));
}
//POST
protected override DriverResult Editor(ProfilePart part, IUpdateModel updater, dynamic shapeHelper)
{
updater.TryUpdateModel(part, Prefix, null, null);
return Editor(part, shapeHelper);
}
}