Orchardcms 在orchard CMS中,创建所需的字段

Orchardcms 在orchard CMS中,创建所需的字段,orchardcms,Orchardcms,我正在编辑内容类型“Blog Post”,并添加了自己的字段(类型分类法)。现在我想将此字段设为必填字段,因此当用户添加新博客文章时,它是必填字段 我该怎么做?我相信你必须自己创建和处理一个“必需”的财产-你应该能够通过查看Orchard.fields项目中所有内置的田地是如何完成的来解决这个问题。例如,在MediaPickerField的驱动程序中: protected override DriverResult Editor(ContentPart part, Fields.MediaPi

我正在编辑内容类型“Blog Post”,并添加了自己的字段(类型分类法)。现在我想将此字段设为必填字段,因此当用户添加新博客文章时,它是必填字段


我该怎么做?

我相信你必须自己创建和处理一个“必需”的财产-你应该能够通过查看Orchard.fields项目中所有内置的田地是如何完成的来解决这个问题。例如,在MediaPickerField的驱动程序中:

 protected override DriverResult Editor(ContentPart part, Fields.MediaPickerField field, IUpdateModel updater, dynamic shapeHelper) {
            // if the model could not be bound, don't try to validate its properties
            if (updater.TryUpdateModel(field, GetPrefix(field, part), null, null)) {
                var settings = field.PartFieldDefinition.Settings.GetModel<MediaPickerFieldSettings>();

                var extensions = String.IsNullOrWhiteSpace(settings.AllowedExtensions)
                        ? new string[0]
                        : settings.AllowedExtensions.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);

                if (extensions.Any() && field.Url != null && !extensions.Any(x => field.Url.EndsWith(x, StringComparison.OrdinalIgnoreCase))) {
                    updater.AddModelError("Url", T("The field {0} must have one of these extensions: {1}", field.Name.CamelFriendly(), settings.AllowedExtensions));
                }

                if (settings.Required && String.IsNullOrWhiteSpace(field.Url)) {
                    updater.AddModelError("Url", T("The field {0} is mandatory", field.Name.CamelFriendly()));
                }
            }

            return Editor(part, field, shapeHelper);
        }
受保护的重写驱动程序结果编辑器(ContentPart、Fields.MediaPickerField、IUpdateModel更新程序、dynamic shapeHelper){
//如果无法绑定模型,请不要尝试验证其属性
if(updater.TryUpdateModel(字段,GetPrefix(字段,部分),null,null)){
var settings=field.PartFieldDefinition.settings.GetModel();
var extensions=String.IsNullOrWhiteSpace(settings.AllowedExtensions)
?新字符串[0]
:settings.AllowedExtensions.Split(新[]{''},StringSplitOptions.RemoveEmptyEntries);
if(extensions.Any()&&field.Url!=null&&extensions.Any(x=>field.Url.EndsWith(x,StringComparison.OrdinalIgnoreCase))){
AddModelError(“Url”,T(“字段{0}必须有以下扩展之一:{1}”、field.Name.CamelFriendly()、settings.AllowedExtensions));
}
if(settings.Required&&String.IsNullOrWhiteSpace(field.Url)){
AddModelError(“Url”,T(“字段{0}是必需的”,field.Name.CamelFriendly());
}
}
返回编辑器(零件、字段、形状帮助);
}

请注意,在返回编辑器之前,它会检查字段是否已设置为required,以及是否已设置为required,并且在调用updater.AddModelError()时是否有注释。我想你也必须为你的分类法字段实现必需的属性。

嘿,伙计,不要因为你太懒而否决我的答案。如果有不清楚的地方,你可以要求澄清。。。