Razor 绑定Ajax的Telerik MVC UI网格未使用DisplayTemplate

Razor 绑定Ajax的Telerik MVC UI网格未使用DisplayTemplate,razor,telerik,kendo-grid,kendo-asp.net-mvc,display-templates,Razor,Telerik,Kendo Grid,Kendo Asp.net Mvc,Display Templates,如何从显示模板中获得一个绑定了Ajax的Telerik MVC UI网格来显示格式或其他内容 查看他们的示例,我看到网格显示了带有货币符号的“单价”列。查看下面的Razor代码,我发现网格是ajax绑定的。不幸的是,我们无法看到ViewModel,但“单价”属性不能是已格式化的字符串,因为单击“编辑”按钮会显示一个数字文本框。我已经创建了EditorTemplates和DisplayTemplates,但不知何故,只有编辑器模板在工作 我的ViewModel如下所示: [UIHint("Mone

如何从显示模板中获得一个绑定了Ajax的Telerik MVC UI网格来显示格式或其他内容

查看他们的示例,我看到网格显示了带有货币符号的“单价”列。查看下面的Razor代码,我发现网格是ajax绑定的。不幸的是,我们无法看到ViewModel,但“单价”属性不能是已格式化的字符串,因为单击“编辑”按钮会显示一个数字文本框。我已经创建了EditorTemplates和DisplayTemplates,但不知何故,只有编辑器模板在工作

我的ViewModel如下所示:

[UIHint("MoneyTemplate")]
public decimal ItemPrice { get; set; }
其中,MoneyTemplate是显示模板和编辑器模板的名称,分别为Views/Shared/DisplayTemplates/MoneyTemplate.cshtml和Views/Shared/EditorTemplates/MoneyTemplate.cshtml

当网格显示时,显示模板不会被拾取,但编辑器模板会被拾取?!?像这样


他们如何在没有客户端模板的情况下显示货币符号?为什么我的显示模板没有被选中?

读完这篇文章后,我发现答案是使用DisplayFormat属性:

[UIHint("MoneyTemplate")]
[DisplayFormat(DataFormatString = "{0:C}")]
public decimal ItemPrice { get; set; }
这将导致网格将十进制显示为货币,并使用“MoneyTemplate”编辑器模板进行编辑