Как передать перечисление в Html.RadioButtonFor, чтобы получить список переключателей в MVC 2 RC 2, C # - PullRequest
9 голосов
/ 08 февраля 2010

Я пытаюсь отобразить список переключателей в MVC 2 RC 2 (C #), используя следующую строку:

<%= Html.RadioButtonFor(model => Enum.GetNames(typeof(DataCarry.ProtocolEnum)),
                        null) %>

но это просто дает мне следующее исключение во время выполнения:

Шаблоны могут использоваться только с доступом к полю, доступом к свойству, индексом одномерного массива или выражениями настраиваемого индексатора с одним параметром.

Возможно ли это, и если да, то как, пожалуйста?

Ответы [ 2 ]

6 голосов
/ 09 февраля 2010

Вы можете создать шаблон с именем «Enum» в /Views/Shared/EditorTemplates/Enum.ascx

со следующим содержанием:

<%= Html.DropDownList(string.Empty, Enum.GetNames(Model.GetType()).ToList().ConvertAll(e => new SelectListItem() { Text = e.ToString(), Value = e , Selected = e.Equals(Model.ToString())}))  %>

Это просто перечисляет значения перечисления.

Вы можете позвонить с помощью

Html.EditorFor(m => m.YourEnumProperty, "Enum" /*The name of the template*/)
1 голос
/ 09 февраля 2010

Попробуйте GetValues ​​ вместо

...