You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kendo MVC UI Grid Email列ClientTemplate条件语法报错求助

Kendo MVC Grid Email列ClientTemplate语法修正

你的Email列ClientTemplate因引号嵌套冲突和模板表达式嵌套错误导致解析失败,以下是修正后的写法:

修正后的Email列配置

columns.Bound(o => o.Email).ClientTemplate("#= Email ? '<a href=\"mailto:' + Email + '\">' + Email + '</a>' : '' #");

关键修正点

  • 移除嵌套的#= Email #:当前已处于#= ... #的模板表达式上下文,直接使用变量名Email即可,无需重复包裹模板标记
  • 用字符串拼接构建链接:避免多层引号嵌套引发的解析错误,同时确保mailto链接格式正确
  • 简化空值判断:JavaScript中null/undefined/空字符串会被判定为false,Email ? ... : ''可以直接实现“空值时不显示内容”的需求

完整修正后的Grid代码片段

@(Html.Kendo().Grid<MVCSite.Model.ProspectSearchContact>()
    .Name("gridContacts_#=ProspectId#")
    .Columns(columns => {
        columns.Bound(o => o.Id).Width(150).Visible(false);
        columns.Bound(o => o.ContactName).Title("Name").Width(100);
        columns.Bound(o => o.ContactType).Width(150);
        // 修正后的Email列ClientTemplate
        columns.Bound(o => o.Email).ClientTemplate("#= Email ? '<a href=\"mailto:' + Email + '\">' + Email + '</a>' : '' #");
        columns.Bound(o => o.Phone).ClientTemplate("<a href='tel:\\#= Phone \\#'>\\#= Phone \\#</a>").Width(150);
    })
    .ToolBar(toolbar => toolbar.Create())
    .DataSource(dataSource => dataSource
      .Ajax()
      .Model(model => {
          model.Id(p => p.Id);
          model.Field(p => p.ProspectId).Editable(false);
      })
      .PageSize(5)
      .Create(update => update.Action("NoteInsert", "DataSource", new {
          ProspectId = "#=ProspectId#"
      }))
      .Read(read => read.Action("ProspectGridItemDataSource", "ProspectingDataSource", new {
          Id = "#=ProspectId#", dataType = "Contact"
      }))
      .Update(update => update.Action("EditingPopup_Update", "Grid"))
      .Destroy(update => update.Action("EditingPopup_Destroy", "Grid"))
    )
    .Pageable()
    .Sortable()
    .Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("GridContactEntry"))
    .ToClientTemplate()
)

内容的提问来源于stack exchange,提问作者Jay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 18:33:14