У меня есть десятичный типа данных в моей модели и аннотация форматировать его, чтобы он добавляет запятые после 3-х цифр:форматирование Ajax.ActionLink текста для отображения
[DisplayFormat(DataFormatString = "{0:#,###0.00}" + " (USD)")]
public decimal PaidAmount { get; set; }
, когда у меня есть какие-либо DisplayFor(m => m.PaidAmount)
непечатаемые отображается правильно (1,200.00 USD). Однако в Ajax.ActionLink первый аргумент принимает строку для отображения текста, поэтому я не могу использовать выражение лямбда (m => m.PaidAmount). Когда я делаю:
Ajax.ActionLink(Model.PaidAmount.ToString(), //rest of link params)
форматирование не применяется к тексту ссылки, он показывает только кучу цифр без запятых (1200.00 USD, обратите внимание, что нет запятой после 1)
моего предположения заключается в том, что использование модели M'odel в капитале теряет свои свойства аннотации, есть ли способ обойти это и применить форматирование к ajax.actionlink?
Причина, по которой ActionLink не использует аннотацию данных, состоит в том, что она просто ожидает строку для ее текста. Он не ожидает, что вы примете модельное выражение. 'm => m.PaidAmount' предоставляет свойство' DisplayFor', чтобы оно могло извлекать аннотации метаданных/данных модели. 'ActionLink' не ожидает таких выражений, потому что вы часто не проходите proeprties, а вместо этого такие вещи, как' Ajax.ActionLink («Back to Home», ' – AaronLS
Я знаю, что это не помогает, а просто для того, чтобы помочь вам понять различие между тем, почему один работает, а другой нет. – AaronLS
спасибо за объяснение –