Я работаю над своим первым приложением ASP.NET MVC 3 и пытаюсь показать ингредиенты определенного мороженого на странице создания.
У меня есть модель просмотра для страницы, котораяимеет такую структуру:
public class IceCreamViewModel
{
...
public IEnumerable<IngredientViewModel> Ingredients { get; set; }
}
(есть и другие свойства, но они не имеют отношения к обсуждению)
Ingredients
заполняетсяCreate
действие на контроллере, и я проверил, что он содержит нужные мне данные.
IngredientViewModel
имеет следующую структуру:
public class IngredientViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsChecked { get; set; }
}
В представлении Создать у меня естьпопытался отобразить коллекцию ингредиентов, чтобы пользователь мог проверить, какие ингредиенты есть в рецепте (например, арахис, яйцо и т. д.), и я делаю что-то вроде этого:
@Html.EditorFor(m => m.Ingredients)
Я написали шаблон редактора для этого, который выглядит следующим образом:
@model IceCream.ViewModels.Ingredients.IngredientViewModel
<div>
@Html.HiddenFor(m => m.Id)
@Html.LabelFor(m => m.Name)
@Html.CheckBoxFor(m => m.IsChecked)
</div>
Я хотел бы показать несколько ярлыков и флажков для каждого из моих ингредиентов, но то, что отображается, это правильное количество ярлыков/ флажок записи, но все они говорят «имя», а не тимя ингредиента, которое находится в IngredientViewModel.Так что я, конечно, здесь что-то не так делаю.Он, очевидно, знает, что у него есть N элементов для перебора, но он не собирает свойства этих элементов.Навигация?
Обновление
Итак, все, что я закончил, это переключил мой LabelFor
на TextBoxFor
, и мои значения появились ...как они, конечно.(усталый, долгий день) - @LabelFor
использует название объекта или аннотированный DisplayName
для объекта.Теперь все работает хорошо ... двигайтесь вперед, здесь ничего не видно ...