Подтвердить что ты не робот

Razor конвертирует enum в int внутри представления

Я смотрю бритву. У меня есть линия, подобная bleow

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

Это опция в списке выбора/выпадающем списке В этом я имею enum PhoneType. Для текстового файла @PhoneType.Work отлично работает но для поля значений @{(Int16) PhoneType.Work не работает

Что я могу сделать, чтобы получить целочисленное значение перечисления в поле значения

4b9b3361

Ответ 1

Этот синтаксис должен делать трюк (обратите внимание на() вместо {}):

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

Ответ 2

Почему бы не создать другое поле в вашем представленииModel, которое является целым числом

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

и используйте это в своем представлении

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

Ответ 3

Мы можем использовать функцию ChangeType, как показано ниже. Надеюсь, это поможет кому-то в будущем.

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

или

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