asp.net mvc бритва умножить два элемента и преобразовать в строку - PullRequest
14 голосов
/ 08 декабря 2010

Когда я пишу @(line.Quantity * line.Product.Price).ToString("c") результат равен

39,00.ToString("c") 

и @line.Quantity * line.Product.Price.ToString("c") результат равен

2 * line.Product.Price.ToString("c") 

Как мне умножить два значения и преобразовать их в строку в виде бритвы?

1 Ответ

43 голосов
/ 08 декабря 2010

1001 * попробовать *

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

Проблема в том, что бритва не знает, когда заканчивается строка вывода, поскольку @ используется для отображения кода в HTML. Пробелы переключают бритву обратно в режим HTML.

Заключение всех в круглые скобки заставляет бритву оценивать весь блок кода.

Хотя наиболее правильным способом было бы ввести новое свойство в вашей модели:

public class MyModel
{
   public double Total { get { return Quantity * Product.Price; }}
   //all other code here
}

и просто используйте:

@line.Total.ToString("c")
...