我可以在 Kendo ListView 的 Kendo 模板的字段上将 Encoded 设置为 False 吗?

Can I Set Encoded to False on a field of a Kendo Template for Kendo ListView?

我可以在 Kendo ListView 的 Kendo 模板的字段上将 Encoded 设置为 False 吗? 在这里,我在列表上有一个网格。正如您在列表中看到的那样,富文本显示为 HTML,而在 enocding 设置为 False 的网格中,富文本显示为文本。我可以在 ListView 中我想要的字段 ( Comment ) 上将编码设置为 false 吗?如果不是,我的选择是什么,因为我无法在 Kendo 模板中呈现编辑器...编辑:目标是删除网格我只想要列表。

               @(Html.Kendo().Grid<WorkflowItemCommentModel>()
                .Name("Grid")
                .Columns(columns =>
                {
                    columns.Bound(e => e.Comment).Width(300).Encoded(false);

                })
                .DataSource(dataSource => dataSource
                .Ajax()
                .Read(read => read.Action("CommentsRead", "WFItem").Data("getWorkflowItemID"))

                    )
                                )
                    <div class="col-sm-2"></div>
                    <div id="comments-list" class="col col-sm-10">

                        @(Html.Kendo().ListView<WorkflowItemCommentModel>()
                .Name("CommentList")
                .TagName("div")

                .Events(e => e.DataBound("onCommentListDataBound").Change("onCommentCriteriaChange"))
                .ClientTemplateId("itemCommentTemplate")
                .DataSource(dataSource =>
                {
                    dataSource.Read(read => read.Action("CommentsRead", "WFItem").Data("getWorkflowItemID"));
                    dataSource.Sort(sort => { sort.Add(f => f.CreatedDate); }).ServerOperation(false);
                })
                .Selectable(s => s.Mode(ListViewSelectionMode.Single))
                        )

模板:

    @*//WFITEM COMMENT TEMPLATE*@
<script type="text/x-kendo-tmpl" id="itemCommentTemplate">
    <div class="step">
        <div class="step-wrapper">
            <dl class="step-list-details">
                <dt class="name"><b>Name:</b>#:CreatedByUserName#  <b>Date:</b> #:CreatedDate#</dt>
                <dd class="stepNum">
                    <b>Comment:</b>
                    <div contenteditable="true">
                        #:Comment#
                    </div>
                </dd>

                <dd class="title">
                    <b>Internal Comment:</b>  #:InternalComment#
                </dd>
                <dd class="stepStatus">Status: Status Test</dd>
            </dl>
            <div class="btn btn-primary" id="viewStep">View</div>
        </div>
    </div>
</script>

我希望我的列表文本像在编码设置为 false 的网格中一样呈现:

是的,您可以使用 #=Comment# 强制模板不对输出进行编码。请参阅 documentation 中的示例:

<div id="example"></div>
<script>
    var template = kendo.template("<div id='box'>#= firstName #</div>");
    var data = { firstName: "<b>Todd</b>" }; //Data with HTML tags
    var result = template(data); //Pass the data to the compiled template
    $("#example").html(result); //display "Todd" in a bold font weight
</script>

请注意,这可能会使您的站点暴露于跨站点脚本 (XSS) 漏洞。至少,您可能希望确保数据不包含任何 <script> 标记。