Razor将enum转换为视图内的int

时间:2012-11-15 11:17:14

标签: .net asp.net-mvc asp.net-mvc-4 razor

我是一个剃刀视图。我有像bleow一样的行

<option value='@{(Int16)PhoneType.Work}'>@PhoneType.Work</option>

这是选择列表/下拉列表中的一个选项 在这里我有一个枚举PhoneType。 对于提交@ PhoneType.Work的文本工作正常 但对于值字段@ {(Int16)PhoneType.Work无法正常工作

如何在值字段

中获取枚举的整数值

3 个答案:

答案 0 :(得分:51)

这种语法可以解决问题(注意()而不是{}):

<option value='@( (Int16) PhoneType.Work )'>@PhoneType.Work</option>

答案 1 :(得分:2)

为什么viewModel上没有另一个字段是整数

public WorkId {get {return (int)Work; }

并在您的视图中使用此

<option value='@PhoneType.WorkId'>@PhoneType.Work</option>

答案 2 :(得分:1)

我们可以使用ChangeType功能,如下所示。希望这有助于将来的人。

<option value=@Convert.ChangeType(PhoneType.Work, PhoneType.Work.GetTypeCode())>@PhoneType.Work</option>

<option value=@Convert.ChangeType(PhoneType.Work, typeof(int))>@PhoneType.Work</option>