Asp.net mvc viewmodel中基于模型字段的自定义字段

Asp.net mvc viewmodel中基于模型字段的自定义字段,asp.net-mvc,asp.net-mvc-viewmodel,Asp.net Mvc,Asp.net Mvc Viewmodel,我是ASP.NET MVC的新手,需要一些帮助 我有一个名为Project的模型,简化如下: public class Project { public int ProjId { get; set; } public string StatusID { get; set; } } StatusID是一个1字符的字符串,可以是I进行中、C完成或K终止。因此,当我从数据库中获得一个项目列表时,它将返回1个字符的状态代码 但是,当我将该信息传递给视图时,我希望显示完整的描述,而不是1

我是ASP.NET MVC的新手,需要一些帮助

我有一个名为Project的模型,简化如下:

public class Project
{
    public int ProjId { get; set; }
    public string StatusID { get; set; }
}
StatusID是一个1字符的字符串,可以是I进行中、C完成或K终止。因此,当我从数据库中获得一个项目列表时,它将返回1个字符的状态代码

但是,当我将该信息传递给视图时,我希望显示完整的描述,而不是1个字符

处理这种情况的最佳方法是什么


谢谢

最好的方法是创建与状态表的一对多关系。然后使用此信息创建单独的视图模型

var vm = new ProjectVM
{
    ProjId = project.ProjId,
    StatusDescription = statuses.Find(project.StatusId).Description
};

Notices status是一个存储库API,它可以找到正确的状态描述。

感谢您的建议。我不确定如何使用存储库API,但我还有另一个相关问题。因为我个人知道这些代码代表什么,所以我希望在没有其他查找表的帮助下显示完整的描述。是否无法使用实际模型的值,并以某种方式调整它们以向传入视图添加新字段?例如,假设有人想要获取一个名为“百分比”的模型字段,并在其显示时附加一个百分比。有没有一种方法可以在运行中添加一个名为DisplayPercent的字段,它将接受一个并附加一个%?你可以在Razor代码中完成所有这些,但对我来说,它感觉脏兮兮的。可以声明要显示的枚举之类的内容it@IsaiahLee,您应该询问一个新问题,但是[DisplayFormatDataFormatString={0:P}]公共十进制百分比{get;set;}和@Html.DisplayForm=>m。如果百分比的值为0.15,则百分比将显示15%