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 = my-css-class } - person TxRegex; 23.03.2018