Sitecore MVC 禁用网页编辑

Sitecore MVC Disable Web Edit

我想在使用 Html.Sitecore().Field(string fieldName, Item item, object params) 时禁用正在显示的字段的 Web 编辑,但我遇到了问题。以下抛出 "parameter count mismatch" 错误

@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

尝试在这样的匿名对象中使用 DisableWebEdit

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

您还可以为图像字段设置 mw = 300, mh = 200

我不知道是否有任何其他开箱即用的支持选项。

在现场渲染管道中无法识别的任何内容都将作为 HTML 属性添加到标签中。