gpt4 book ai didi

asp.net-mvc-3 - 形状的 "Prefix"部分在 Editor 方法中的作用是什么?

转载 作者:行者123 更新时间:2023-12-01 09:34:53 26 4
gpt4 key购买 nike

using Orchard.ContentManagement;
using Orchard.ContentManagement.Drivers;

namespace Orchard.Webshop.Drivers {
public class ProductDriver : ContentPartDriver<ProductPart> {
protected override DriverResult Editor(ProductPart part, dynamic shapeHelper)
{
return ContentShape("Parts_Product_Edit", () => shapeHelper.EditorTemplate(TemplateName: "Parts/Product", Model: part, Prefix: Prefix));
}

protected override DriverResult Editor(ProductPart part, IUpdateModel updater, dynamic shapeHelper)
{
updater.TryUpdateModel(part, Prefix, null, null);
return Editor(part, shapeHelper);
}
}
}

我一直在寻找 Prefix 的作用,但没有找到任何定义它或解释其用途的东西。如果前缀可以在编辑器以外的方法中使用,请随时详细说明。谢谢。

最佳答案

这是一个字符串前缀,附加到编辑器模板的表单字段名称中。需要这样做的原因:

假设您创建了一个名为 NoobsPart 的新内容部件,其属性名为“Text”。在包含 N00bsPart 的“N00b”内容类型中,您还附加了一个 BodyPart。 BodyPart 还有一个名为“Text”的属性。 BodyPart 和 N00bsPart 的 html 字段名称在回发时会相互冲突。前缀解决了字段名冲突的问题。通常可以将前缀设置为零件名称以消除歧义并避免冲突。我不确定前缀是否在其他地方使用,但考虑到它解决的问题,我认为不会。

以下Orchard核心代码中的示例,我通常在驱动程序中将前缀设置为类属性:

using Orchard.ContentManagement;
using Orchard.ContentManagement.Drivers;

namespace Orchard.Webshop.Drivers {
public class ProductDriver : ContentPartDriver<ProductPart> {
protected override string Prefix { get { return "ProductPart"; } }
protected override DriverResult Editor(ProductPart part, dynamic shapeHelper)
{
return ContentShape("Parts_Product_Edit", () => shapeHelper.EditorTemplate(TemplateName: "Parts/Product", Model: part, Prefix: Prefix));
}

protected override DriverResult Editor(ProductPart part, IUpdateModel updater, dynamic shapeHelper)
{
updater.TryUpdateModel(part, Prefix, null, null);
return Editor(part, shapeHelper);
}
}
}

关于asp.net-mvc-3 - 形状的 "Prefix"部分在 Editor 方法中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9877745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com