Razor: RadioButton для перечисления и отображения выбранного элемента в сводке - PullRequest
2 голосов
/ 28 апреля 2011

Я использую RadioButtonFor для отображения списка выбираемых элементов. Это часть мастера, который я использую, и последний шаг мастера - сводка для пользователя, чтобы подтвердить его отправку. У меня все работает, кроме RadioButtonFor. Мое резюме содержит что-то довольно простое, показывающее, что вводит пользователь.

Пример:

...

<div>Summary</div>

<div>Please confirm the information you are submitting.</div>

<div>First Name: @Model.FirstName</div>

...

Соответствующая часть моей модели:

public CategoryList Category { get; set; }

public enum CategoryList
{
    Category1
    Category2
    Category3
}

Соответствующая часть моей страницы (шаг мастера с RadioButtonFor):

...

@Html.LabelFor(m => m.Category, new { @class = "CLASS" })
@Html.ValidationMessageFor(m => m.Category)

<div>
@Html.RadioButtonFor(m => m.Category, "Category1")
<span>NEW!</span>Category 1. This Category is for BLAH BLAH BLAH ...
@Html.RadioButtonFor(m => m.Category, "Category2")
Category 2. This Category is for BLAH BLAH BLAH ...
@Html.RadioButtonFor(m => m.Category, "Category3")
Category 3. This Category is for BLAH BLAH BLAH ...
</div>
...

Соответствующая часть моей страницы (шаг сводки мастера, содержащий RadiouButtonFor):

<div>@Model.Category</div>

Приведенное выше просто отображает фактическое имя в списке категорий, например, «Категория1», если пользователь выбрал категорию 1, поэтому я знаю, что перечисление работает правильно. Тем не менее, я хочу, чтобы описание было более наглядным. Скажите, что я хочу, чтобы Категория 1 сказала «Категория 1. Эта категория предназначена для БЛА БЛА БЛА», а также, возможно, добавила «Категория 1». Так что это отображается в красном. Фактическое имя, которое я использую в перечислении, состоит из трех слов и содержит два подчеркивания, поэтому не очень удобно использовать в нем «Word1_Word2_Word3», что и отображается в сводке.

Если быть более точным, если вы посмотрите на соответствующую часть страницы выше, которая содержит RadioButtonFor, я включаю текст для переключателя, который отображается пользователю в пользовательском интерфейсе. Текст, который появляется там, есть то, что я хочу отображать в резюме.

Я пытался использовать следующее:

<div>@Model.Category.CategoryList</div>

но выдает ошибку (... не содержит определения для "CategoryList" и не может быть найден метод расширения "CategoryList", принимающий первый аргумент типа ... (вы пропустили директиву using или ссылку на сборку "). Я провел часы в googlenet и не смог ничего найти (вполне возможно, потому что я не формулирую хорошие поисковые термины).

Есть мысли? Возможно ли это, или я могу сделать что-то альтернативное, чтобы достичь того, что я ищу?

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

1 Ответ

0 голосов
/ 28 апреля 2011

Вы можете хранить описания в Dictionary<CategoryList, string> где-нибудь и писать @Html.Raw(YourDictionary[Model.Category])

...