如何在视图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
保留在控制器/模型中并离开视图。 这样也可以更容易地进行测试