В TaskViewModel (я бы предпочел назвать его CreateTaskViewModel) создать свойство для списка выбора категорий
public IEnumerable<SelectListItem> CategoriesSelectList;
В контроллере привязайте это свойство перед возвратом представления (обратите внимание, что это также следует делать в пост-обработчике, когда ModelState недопустим)
public ViewResult Create()
{
CreateTaskViewModel model = new CreateTaskViewModel();
model.CategoriesSelectList = _repository.AllCategories().Select(x=> new SelectListItem(){ Text = x.CategoryName, Value = x.CategoryId.ToString();}
}
И, наконец, в представлении
Html.DropDownListFor(model => model.CategoryId, Model.CategoriesSelectList)
Edit:
В вашем коде _repository.AllCategories()
должен быть заменен вашим кодом доступа к данным, который возвращает объект типа IEnumerable<Category>
. На самом деле не имеет значения, какую технологию доступа к данным вы используете. И не забудьте добавить оператор using System.Linq;
в файл вашего контроллера, если он отсутствует.