我在我的模型十進制數據類型和註解格式化它,所以它後3個位數增加逗號:格式化ajax.actionlink要顯示的文本
[DisplayFormat(DataFormatString = "{0:#,###0.00}" + " (USD)")]
public decimal PaidAmount { get; set; }
當我有任何DisplayFor(m => m.PaidAmount)
格式顯示正確( 1,200.00美元)。但是,在Ajax.ActionLink中,第一個參數需要一個字符串來顯示文本,所以我不能使用lambda表達式(m => m.PaidAmount)。當我這樣做:
Ajax.ActionLink(Model.PaidAmount.ToString(), //rest of link params)
格式不適用於鏈接文本,它顯示只是沒有逗號一串數字(1200.00美元,請注意,沒有逗號後1)
我的猜測是使用大寫'M'odel版本的模型失去了它的註釋屬性,有沒有辦法繞過這個並將格式應用到ajax.actionlink?
ActionLink不使用數據註釋的原因是因爲它只是期望字符串的文本。它不指望你傳遞一個模型表達式。 'm => m.PaidAmount'將該屬性暴露給'DisplayFor',以便它可以檢索模型元數據/數據註釋。 'ActionLink'並不期望這些表達式,因爲你通常不會傳遞prohrties,而是像'Ajax.ActionLink(「返回首頁」,' – AaronLS 2014-12-18 22:34:18
我知道這並沒有幫助,但只是爲了幫助你理解爲什麼一個人工作和一個人不工作的區別 – AaronLS 2014-12-18 22:35:48
謝謝你的解釋 – 2014-12-18 22:43:25