奥查德:为什么我的财产没有得救?

本文关键字:财产 我的 为什么 | 更新日期: 2023-09-27 18:12:34

我在下面的果园代码工作。由于某种原因,我无法将我的属性ProductsContent持久化到DB上。我已经在视图上正确地渲染了它的文本字段,并相应地创建了迁移。我的Product部件记录的Leaves属性被正确地存储了,但是我的ProductsContent属性没有被正确地存储。

奥查德:为什么我的财产没有得救?

在我看来,因为您在驱动程序中使用视图模型而不是实际部分,该部分不会自动更新:

protected override DriverResult Editor(
    ProductPart part,
    IUpdateModel updater,
    dynamic shapeHelper)
{
    var model = new EditLeavesViewModel<ProductLeafEntry>();
    if (updater.TryUpdateModel(model, Prefix, null, null))
    {
        // set the property manually here
        part.ProductsContent = model.ProductsContent;
        if (part.ContentItem.Id != 0)
        {
            _productService.UpdateLeavesForContentItem(
                part.ContentItem, model.Leaves);
        }
    }
    return Editor(part, shapeHelper);
}