我在我的模型十进制数据类型和注解格式化它,所以它后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