计算具有特定枚举值的模型数

时间:2013-08-21 14:48:35

标签: c# html5 asp.net-mvc-4 razor

我想获得具有特定枚举值的模型数量。 像这样:

  (@Model.Status == "pending").Count().tostring())

  (@Model.Status.Contains("pending").Count().tostring())

所有模型最初都会传回,然后按其状态进行分组。 例如,@Model.Count()将返回所有模型(待定,接受等)

为了加入上下文,此计数将在收件箱中显示为数字,因此最终结果如下:

  

待定(8)接受(3)......等

请注意,这是一个使用razor 2视图的asp.net MVC 4应用程序。

2 个答案:

答案 0 :(得分:2)

您可以使用重载的Count方法:

@Model.Count(m => m.Satus == YourEnum.Pending)

答案 1 :(得分:1)

要依靠特定条件,您必须在Count方法中使用谓词,如下所示:

(@Model.Count(s => s.Status == StatusEnum.Pending).ToString())

此外,如果您只有string形式的枚举名称,则需要使用Enum.Parse来获取值,如下所示:

(StatusEnum)Enum.Parse(typeof(StatusEnum), "Pending")

结果将是:

(@Model.Count(s => s.Status == (StatusEnum)Enum.Parse(typeof(StatusEnum), "Pending")).ToString())