2

私は ASP MVC の初心者で、モデルのデータをビューに表示しようとしています。これは私がデータを表示する方法です:

@Html.DisplayFor(modelItem => item.Budget_Year)

しかし、このデータの使い方がわかりません。たとえば、この結果を切り上げようとして、素朴に試してみました。

@{ 
   double test = (modelItem => item.Budget_Year);    
   test = System.Math.Round(test , 2);
}

しかし、私はそれをそのように使用することはできません:デリゲート型ではないため、ラムダ式を型 'double' に変換できません

私のビューで私のモデルからこの異なるアイテムを使用する方法を誰かが説明してくれますか?

よろしくお願いします、

アレックス

4

4 に答える 4

7

これをより適切に行うには多くの方法があります。

丸められた値であるプロパティがあるViewModelクラスを使用します

public class MyViewModel {
   public double BudgetYear {get;set;}
   public double RoundedBudgetYear {get {return Math.Round(BudgetYear, 2);}}
}

とビューで

@Html.DisplayFor(m => m.RoundedBudgetYear)

また

プロパティにDisplayFormat 属性を追加します

Html.DisplayFor 10 進形式を参照してください。

また

表示された値を丸める独自の HtmlHelper を作成します。

@Html.DisplayRoundedFor(m => m.BudgetYear)
于 2013-05-22T09:29:19.600 に答える
4

まず、実際に使用するモデルを宣言し、それをModel変数として使用する必要があります。

@model YourModelName
@{
    var test = Model.BudgetYear.ToString("0.00");
}
于 2013-05-22T09:27:25.657 に答える
0

モデルのプロパティにアクセスしようとしているだけの場合は、次のように実行できます。

double test = Model.BudgetYear;

ラムダは、ユーザーにビューから値を割り当てさせようとしている場合にのみ必要です。

于 2013-05-22T09:24:19.550 に答える
0

私はビューでこれをしません。代わりにBudgetYear、モデル/ビュー モデルを丸め、既に丸められたビューに送信します。logicをコントローラー/モデル内に保持し、ビューから外します。これでテストもやりやすくなる

于 2013-05-22T09:27:16.287 に答える