2012-11-15 35 views
19

我剃刀视图.I内部诠释有像bleow剃刀转换枚举的图

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

这条线是在选择列表/下拉列表 在这个选项我有一个枚举PHONETYPE。 对于申请@ PhoneType.Work文字工作正常 但值字段@ {(Int16的)PhoneType.Work不工作

我能做些什么,在价值领域获得枚举的整数值

+0

你为什么不使用'Html.DropDownListFor'帮手? –

+0

如何在枚举中使用它 –

+0

通过编写一个帮手:http://stackoverflow.com/a/5961529/29407 –

回答

2

为什么不对您的视图模型的另一个领域是一个整数

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

,并在您的视图

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

这SY使用ntax应该做的伎俩(注意()代替{}):

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

我们可以使用ChangeType函数,如下所示。希望这对未来的人有所帮助。

<option [email protected](PhoneType.Work, PhoneType.Work.GetTypeCode())>@PhoneType.Work</option> 

<option [email protected](PhoneType.Work, typeof(int))>@PhoneType.Work</option>