在MVC中对Controller或View中的值进行解码

时间:2017-02-13 06:58:26

标签: c# asp.net-mvc c#-4.0 asp.net-mvc-5

请考虑这种情况:在某些业务领域,我们可以将它们作为组合框或单选按钮实现一些简单且常量的选项。

例如,请考虑此示例的状态组合框:

(Bad , 1), 
(Medium , 2), 
(Good , 3), 
(Well , 4)

对于这个基本信息,我们在类中创建了类型为List的静态方法(或属性),对于这个简单和常量,我们没有将它们保存在数据库中。

现在考虑我们要创建一个只读视图,在模型中我们使用StatusID但我们应该解码此ID以显示它的文本。我知道(根据我的不完整信息)2解决方案:

  1. 创建一个viewmodel,并使用我的静态方法在我的控件解码StatusText中添加StatusID属性

  2. 传递我的模型以在那里查看和解码

  3. 我想知道这种情况的最佳做法是什么。

    非常感谢

1 个答案:

答案 0 :(得分:2)

我会将它们设为Enum并在视图@Html.EnumDropDownListFor(m=>m.StatusId, m=> m.MyEnum)中使用。

如果您想要自定义显示标签,请使用枚举成员上的DisplayAttribute

<强>更新

如果您只想在标签中显示该值,我仍会建议您使用Enum并在视图中<div>(@Model.Status.ToString() , @((int)Model.Status))</div>。您可以用您需要的任何元素替换<div>