我想在使用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
答案 0 :(得分:10)
尝试在匿名对象中使用DisableWebEdit
:
@Html.Sitecore().Field("Field Name", new { DisableWebEdit = true })
您还可以为图片字段设置mw = 300, mh = 200
。
我不知道是否支持开箱即用的任何其他选项。
在字段渲染管道中无法识别的任何内容都将作为HTML属性添加到标记中。