2012-05-03 2 views
0

У меня есть модель с bool свойством IsMale. У меня есть таблица со значениями, как я могу изменить значение?asp.net mvc 3 бритва изменить значение модели в поле зрения

Я попытался это:

<td> 
      @if (item.IsMale == true) 
      { 
       @Html.DisplayFor(modelItem => "Male") 
      } 
      else 
      { 
       @Html.DisplayFor(modelItem => "Female") 
      } 
     </td> 

Но им получать сообщение об ошибке:

Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions. 

И создать вид, как я могу сделать радио-кнопки> Мужчина> Женщина и вернуть его в BOOL?

ответ

1

Может быть, вы могли бы использовать что-то вроде этого:

@Html.CheckBoxFor(model => model.IsMale) 

Я вижу, что это кнопка радио вы хотите ...

@Html.RadioButtonFor(model => model.IsMale, true) 

@Html.RadioButtonFor(model => model.IsMale, false) 
+0

Флажок будет очень необычным способом представить такой выбор пользователя: «[] Я лицо мужского пола (пожалуйста, не проверить этот ящик, если вы женщина) « – chiccodoro

+0

Согласитесь, я понял, что именно поэтому я обновил свой ответ. – kaze

2
<td> 

    @Html.Display(item.IsMale ? "Male" : "Female") 

</td> 
2

@Html.DisplayFor принимает свойство модели и выводит значение этого свойства. То, что вы пытаетесь сделать, это печатать стробированную строку. Для этого вам не нужен DisplayFor. Просто попробуйте:

<td> 
    @if (item.IsMale) 
    { 
     <text>Male</text> 
    } 
    else 
    { 
     <text>Female</text> 
    } 
</td> 

Лучший дизайн был бы, если вы не сделаете пол логическим значением. Возможно, вы захотите добавить «Unspecified» или что-то еще позже. Если вы сделаете пол «сущностью первого класса», имена «мужчина» и «женщина», а также переключатели не должны быть жестко закодированы:

Скажите, что у вас есть класс под названием «Пол» с свойство «Имя». Тогда ваш modelItem будет иметь свойство «Пол» с объектом типа «Пол».

<td>@Html.DisplayFor(modelItem => modelItem.Gender.Name)</td> 

и для радио вы можете получить весь список доступных полов из источника данных и поместить их в качестве RadioButtonList в ViewModel. Тогда вы можете просто использовать:

@Html.RadioButtonListFor(modelItem => modelItem.AllGenders) 

Смотрите также Has anyone implement RadioButtonListFor<T> for ASP.NET MVC?

Смежные вопросы