Я пытаюсь получить доступ к DataTypeName из ModelMetadata в пользовательском DisplayTemplate, но он всегда равен нулю.Моя цель - создать шаблон decimal.cshtml, который ищет DataTypeName и, если он равен Currency, форматирует его как валюту.В противном случае отобразите десятичное число, как обычно.Вот пример того, что у меня сейчас есть:
Модель:
public class MyModel
{
[DataType(DataType.Currency)]
public decimal foo { get; set; }
}
В представлении, которое строго типизировано как MyModel
У меня есть такой вызов: @Html.DisplayFor(m => m.foo)
Шаблон отображения (~ / Views / Shared / DisplayTemplates / decimal.cshtml)
@model decimal?
@{
var type = ViewData.ModelMetadata.DataTypeName; // This is always null
}
Я знаю, что он использует мой DisplayTemplate, как и положено, но я ожидаю, что DataTypeName не будетnull в этом случае, так как у меня есть атрибут DataType на модели.Есть ли способ получить доступ к DataType в шаблоне отображения, как этот?