如何在 Kendo 网格列中调用静态方法

How to call a static method in Kendo Grid column

我使用 Kendo 网格来显示我的 table 字段,如下所示:

@(Html.Kendo().Grid<MyProject.Admin.Models.MyViewModel>(Model)
    .Name("id")
    .Columns(columns =>
    {
        columns.Bound(c => c.ID).Filterable(false);
        columns.Bound(c => c.ModelNo).Filterable(false);

它工作正常,但其中一个字段是 userId,一个 GUID 字段,我想调用一个静态方法,其中 returns 用户名。我已经创建了这个方法。方法是

 public static string GetUserName(Guid UserId)
        {
            var db = new ApplicationDbContext();
            var user = (from k in db.Users where k.Id == UserId.ToString() select k).FirstOrDefault();
            if(user != null)
            {
                return user.UserName;
            }
            else
            {
                return "-";
            }

        }

所以我需要在 Kendo 网格中调用此方法,例如:

columns.Bound(c => c.UserID).Template(@<text>
            <strong>@Tools.GetUserName(c.UserID)</strong>
        </text>);
      columns.Bound(p => p.Title).Template(@<text>
           <strong>@item.Title</strong>
      </text>);

简单地生成javascript像这样

  columns: [{
    ...
    template: "<strong>#:Title#</strong>"
  }],

template: "<text><strong>#:Title#</strong></text>" 在客户端的 Kendo UI 框架中由 templating engine 进一步处理。因此,将#:Title# 替换为任何 C# 函数都不会在浏览器端被识别。