Razor将enum转换为视图内的int

Kut*_*ith 26 .net asp.net-mvc razor asp.net-mvc-4

我是一个剃刀的观点.我有一个像bleow一样的线

<option value='@{(Int16)PhoneType.Work}'>@PhoneType.Work</option>
Run Code Online (Sandbox Code Playgroud)

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

我该怎么做才能在值字段中获取枚举的整数值

Sté*_*one 53

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

<option value='@( (Int16) PhoneType.Work )'>@PhoneType.Work</option>
Run Code Online (Sandbox Code Playgroud)


dov*_*ove 3

为什么不在你的 viewModel 上有另一个整数字段

public WorkId {get {return (int)Work; }
Run Code Online (Sandbox Code Playgroud)

并在你的视图中使用它

<option value='@PhoneType.WorkId'>@PhoneType.Work</option>
Run Code Online (Sandbox Code Playgroud)