如何在视图ASP MVC中使用模型数据?

我是ASP MVC的初学者,我正试图在视图中显示模型中的数据。 这是我显示数据的方式:

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

但我不知道如何使用这些数据,例如我试图对这个结果进行舍入,我天真地尝试过:

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

但我不能这样使用它: 无法将lambda表达式转换为’double’类型,因为它不是委托类型

在我看来,有人可以解释一下如何在我的模型中使用这些不同的项目吗?

最好的祝福,

亚历克斯

你有很多方法可以更恰当地做到这一点:

使用ViewModel类 ,其中有一个属性是您的Rounded值

 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十进制格式?

要么

创建自己的HtmlHelper ,它将围绕显示的值。

 @Html.DisplayRoundedFor(m => m.BudgetYear) 

首先,您需要声明实际使用的模型,然后将其用作Model变量。

 @model YourModelName @{ var test = Model.BudgetYear.ToString("0.00"); } 

如果您只是想尝试访问模型的属性,可以这样做:

 double test = Model.BudgetYear; 

只有在您尝试让用户从视图中为其分配值时,才需要lambda。

我不会在视图中这样做。 相反,我会在您的模型/视图模型中舍入BudgetYear并将其发送到已经舍入的View。 将logic保留在控制器/模型中并离开视图。 这样也可以更容易地进行测试