我是ASP MVC的初学者,我正试图在视图中显示模型中的数据。 这是我显示数据的方式:
@Html.DisplayFor(modelItem => item.Budget_Year)
但是我不知道如何使用这些数据,例如我试图对这个结果进行整理,我天真地尝试过:
@{
double test = (modelItem => item.Budget_Year);
test = System.Math.Round(test , 2);
}
但我不能那样使用它:无法将lambda表达式转换为'double'类型,因为它不是委托类型
有人可以在我看来解释如何在我的模型中使用这些不同的项目吗?
致以最诚挚的问候,
亚历
答案 0 :(得分: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 decimal format?
或
创建您自己的HtmlHelper ,它将围绕显示的值。
@Html.DisplayRoundedFor(m => m.BudgetYear)
答案 1 :(得分:2)
首先,您需要声明实际使用的模型,然后将其用作Model
变量。
@model YourModelName
@{
var test = Model.BudgetYear.ToString("0.00");
}
答案 2 :(得分:0)
如果您只是想尝试访问模型的属性,可以这样做:
double test = Model.BudgetYear;
只有在您尝试让用户从视图中为其指定值时,才需要使用lambda。
答案 3 :(得分:0)
我不会在视图中这样做。相反,我会在您的模型/视图模型中舍入BudgetYear
并将其发送到已经舍入的视图。将logic
保留在控制器/模型中并离开视图。这样也可以更容易地进行测试