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

时间:2013-05-22 09:22:28

标签: c# asp.net asp.net-mvc view model

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

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

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

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

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

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

致以最诚挚的问候,

亚历

4 个答案:

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