0
我想要在小部件管理員中單擊提交保存按鈕時訪問內容部分中的selectedvalue(枚舉字段)。我如何在編輯器方法中做到這一點?編輯器方法中的訪問值枚舉字段fom內容部分Orchard
我想要在小部件管理員中單擊提交保存按鈕時訪問內容部分中的selectedvalue(枚舉字段)。我如何在編輯器方法中做到這一點?編輯器方法中的訪問值枚舉字段fom內容部分Orchard
如果你知道有一個領域的ContentPart的名稱,你可以做這樣的:
(dynamic)contentItem.ContentPartName.FieldName.SelectedValue
但是,如果你不知道ContentPart的名稱,可以先用這讓內容項目的所有字段在運行時:
using System.Runtime.CompilerServices;
using Microsoft.CSharp.RuntimeBinder;
// get all the fields from the contentItem without knowing part name
var callSite = CallSite<Func<CallSite, object, object>>
.Create(Binder.GetMember(0, contentItem.ContentType,
((dynamic)contentItem).GetType(), new[] { CSharpArgumentInfo.Create(0, null) }));
var contentItemFields = ((callSite.Target(callSite, ((dynamic)contentItem))).Fields) as List<ContentField>;
有字段列表,你現在可以搜索你想要的EnumerationField,並獲得選擇的值:
var yourField = (contentItemFields.FirstOrDefault(f => f.name == "YourField")) as EnumerationField;
var selectedValue = yourField.SelectedValue;
你想要哪個價值?你想用它做什麼? – devqon
我想要這個:創建自定義小部件時點擊保存按鈕。在編輯器方法中,從遷移文件中附加的枚舉字段中獲取de selectedvalue。根據選擇的值我想做的東西,但我需要知道如何獲得該值(Fields.EnumerationsFields.SelectedValue)。 –