web-dev-qa-db-ja.com

asp.net mvc razor 2つのアイテムを乗算し、文字列に変換します

@(line.Quantity * line.Product.Price).ToString("c")と書くと、結果は次のようになります。

_39,00.ToString("c") 
_

@line.Quantity * line.Product.Price.ToString("c")の結果は

_2 * line.Product.Price.ToString("c") 
_

2つの値を乗算し、レイザービューで文字列に変換するにはどうすればよいですか?

14
Barış

試してみてください

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

問題は、@がHTMLでコードを表示するために使用されるため、かみそりが出力文字列がいつ終了するかを知らないことです。 SpacesはかみそりをHTMLモードに戻します。

すべてを括弧で囲むと、かみそりはコードブロック全体を評価します。

最も適切な方法は、モデルに新しいプロパティを導入することです。

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

単に使用します:

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