asp.net mvc razor将两个项目相乘并转换为字符串

Bar*_*rış 14 asp.net-mvc razor

当我写 @(line.Quantity * line.Product.Price).ToString("c")的结果是

39,00.ToString("c") 
Run Code Online (Sandbox Code Playgroud)

@line.Quantity * line.Product.Price.ToString("c")结果是

2 * line.Product.Price.ToString("c") 
Run Code Online (Sandbox Code Playgroud)

如何在剃刀视图中将两个值相乘并将其转换为字符串?

jga*_*fin 43

尝试

@((line.Quantity * line.Product.Price).ToString("c"))
Run Code Online (Sandbox Code Playgroud)

问题是剃刀不知道输出字符串何时结束,因为@用于在HTML中显示代码.Spaces将剃刀切换回HTML模式.

将所有内容包含在括号中会使razor评估整个代码块.

虽然最合适的方法是在模型中引入新属性:

public class MyModel
{
   public double Total { get { return Quantity * Product.Price; }}
   //all other code here
}
Run Code Online (Sandbox Code Playgroud)

并简单地使用:

@line.Total.ToString("c")
Run Code Online (Sandbox Code Playgroud)