Asp.net mvc 5 如何在Sitecore MVC中绑定数据属性

Asp.net mvc 5 如何在Sitecore MVC中绑定数据属性,asp.net-mvc-5,sitecore,sitecore8,sitecore-mvc,Asp.net Mvc 5,Sitecore,Sitecore8,Sitecore Mvc,所需输出 <a data-toggle="dropdown">Countries <i class="fa fa-angle-down"></i></a> href已生成。这是不必要的 未设置数据切换属性 编辑框架或编辑模式检查是可能的解决方案,但您也可以从Sitecore创建自己的HtmlHelper扩展。给你一个想法: public static HtmlString Test(this SitecoreHelper helper, st

所需输出

<a data-toggle="dropdown">Countries <i class="fa fa-angle-down"></i></a>

  • href
    已生成。这是不必要的
  • 未设置
    数据切换
    属性

  • 编辑框架或编辑模式检查是可能的解决方案,但您也可以从Sitecore创建自己的HtmlHelper扩展。给你一个想法:

    public static HtmlString Test(this SitecoreHelper helper, string fieldName, Item item, object parameters)
    {
        var result = helper.BeginField(fieldName, item, parameters);
        return new HtmlString(result.ToString().Replace("href=\"#\" ", string.Empty));
    }
    
    此快速示例将删除href=“#”但您可以使其更智能

    在您看来,您可以使用:

    @Html.Sitecore().Test("Target URL", item.Item, new { @data_toggle = "dropdown" })
    <i class="fa fa-angle-down"></i>;
    @Html.Sitecore().EndField()
    
    @Html.Sitecore().Test(“目标URL”,item.item,新{@data\u toggle=“dropdown”})
    ;
    @Html.Sitecore().EndField()
    

    只是一些快速测试代码,但它应该已经可以工作了,并且可以扩展以获得您所需要的。

    item.item有什么问题?@qwerty您看到了吗?@MarekMusielak。是的,我去过那里。在何处创建
    流程(RenderFieldArgs)
    ?我应该创建一个新的配置文件吗?如果是,那么如何注册它。对于初学者来说,这一切都很难理解。@Liam。但这会使该字段可编辑吗?是的。在体验编辑器中。不使用玻璃映射器
    public static HtmlString Test(this SitecoreHelper helper, string fieldName, Item item, object parameters)
    {
        var result = helper.BeginField(fieldName, item, parameters);
        return new HtmlString(result.ToString().Replace("href=\"#\" ", string.Empty));
    }
    
    @Html.Sitecore().Test("Target URL", item.Item, new { @data_toggle = "dropdown" })
    <i class="fa fa-angle-down"></i>;
    @Html.Sitecore().EndField()