加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – Razor – 渲染没有Render()且没有编码

发布时间:2020-12-16 03:25:18 所属栏目:asp.Net 来源:网络整理
导读:有人可以解释如何实现以下目标. Telerik Grid组件将使用以下代码生成非编码 HTML: @(Html.Telerik().Grid(Model) .Name("Grid") .DataKeys(keys = keys.Add(c = c.ProductID)) .DataBinding(dataBinding = dataBinding.Server() .Select("ColumnSettings","
有人可以解释如何实现以下目标. Telerik Grid组件将使用以下代码生成非编码 HTML:

@(Html.Telerik().Grid(Model)
        .Name("Grid")
        .DataKeys(keys => keys.Add(c => c.ProductID))
        .DataBinding(dataBinding => dataBinding.Server()
            .Select("ColumnSettings","Grid")
            .Update("ColumnSettings_Save","Grid")
            .Delete("ColumnSettings_Delete","Grid"))
        .Columns(columns =>columns.LoadSettings((IEnumerable<GridColumnSettings>)ViewData["Columns"]))
        .Sortable()
)

大概这是因为方法调用包含在“@(….)”中.每当我用自己的组件尝试这个时,结果都是编码的Html.我知道我可以使用Render()输出MvcHtmlString,然后我的Html没有编码,但Telerik网格似乎没有.Render().

谁能向我解释这个秘密?

解决方法

@()语法只允许此命令跨越多行(否则将解释换行符 – 错误地 – 作为语句的结尾)并且不会影响编码.

你是对的 – 他们正在输出一个MvcHtmlString,它避免了自动Razor编码.

更具体地说,所有这些方法都是Builder对象的一部分,一个流畅的接口,它从每次调用返回自己. Builder本身实现了IHtmlString,这就是为什么.Sortable()调用或此链中的任何其他调用将呈现HTML未编码的原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读