Sitecore MVC Отключить веб-редактирование

Я хочу отключить веб-редактирование для отображаемого поля при использовании Html.Sitecore().Field(string fieldName, Item item, object params), но у меня возникают проблемы. Следующее выдает ошибку "несоответствие количества параметров"

@Html.Sitecore()
   .Field(item.InnerField.Name, item.InnerField.Item,
     new Sitecore.Collections.SafeDictionary<string, string>
     {
       {"class", classParam},
       {"disable-web-edit", pageEditorEnabled.ToString()}
     });

Я не мог использовать анонимный объект, потому что в параметре disable-web-edit есть дефисы. Может быть какое-то другое ключевое слово, которое я должен использовать, но это то, что средство визуализации поля использует iirc.

[TargetParameterCountException: Parameter count mismatch.]
   System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +14255904
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +96
   System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index) +37
   Sitecore.Mvc.Helpers.TypeHelper.CopyProperties(Object source, SafeDictionary`2 target) +89
   Sitecore.Mvc.Helpers.SitecoreHelper.BeginField(String fieldName, Item item, Object parameters) +120
   Sitecore.Mvc.Helpers.SitecoreHelper.Field(String fieldName, Item item, Object parameters) +23

person Teeknow    schedule 20.10.2015    source источник
comment
Вы пробовали @Html.Sitecore().Field("Field Name", new { DisableWebEdit = true })?   -  person Marek Musielak    schedule 20.10.2015
comment
Просто сделал. Это сработало, спасибо. Если вы хотите добавить это в качестве ответа, я приму это. Также есть ли полный список вещей, которые мы можем передать в качестве параметров? Это что-то, что мы обычно можем передать в средство визуализации поля без дефисов?   -  person Teeknow    schedule 20.10.2015
comment
Боковое примечание: MVC естественным образом преобразует параметры HTML, которые имеют символы подчеркивания, в тире - не знаю, применимо ли это напрямую здесь.   -  person Jim Noellsch    schedule 20.10.2015
comment
Это полезно знать, чтобы применять атрибуты данных к элементам, созданным средством визуализации поля. Спасибо!   -  person Teeknow    schedule 20.10.2015


Ответы (1)


Попробуйте использовать DisableWebEdit в анонимном объекте следующим образом:

@Html.Sitecore().Field("Field Name", new { DisableWebEdit = true })

Вы также можете установить mw = 300, mh = 200 для полей изображения.

Я не знаю, есть ли какие-либо другие опции, поддерживаемые из коробки.

Все, что не будет распознано в конвейере рендеринга поля, будет добавлено в тег как атрибут HTML.

person Marek Musielak    schedule 20.10.2015
comment
Вы можете добавить параметры, такие как класс css, но перед ним должен быть символ @. пример: новый { @class = мой-css-класс } - person TxRegex; 23.03.2018